View Full Version : [Java] Problema con espressioni regolari! Come si rappresenta questa?
doctorAle85
29-11-2008, 10:39
Ciao a tutti,
volevo chiedervi una cosa...
Non riesco a scrivere un'espressione regolare...in realtà non so neanche se è possibile scriverla!
Cmq...l'espressione che vorrei è la seguente:
tutte le stringhe possibili (sia lettere che numeri) meno la stringa "ciao".
per rappresentare tutte le stringhe scrivo ("a"-"z""0"-"9")* se non sbaglio!
Per togliere "ciao"?
grazie
DanieleC88
29-11-2008, 23:41
[^ciao]
Vincenzo1968
30-11-2008, 14:09
Puoi utilizzare un bell'automa a stati finiti. È una soluzione più efficiente rispetto alle regex.
:bimbo:
Qualcuno potrebbe aiutarmi in pratica ho una stringa di questo genere:
ID_LOCATION (0003) NAME (salvo) TYPE (corridor) LOCATION_FARTHER (4)
e voglio estrarre solo la parte compresa tra le parentesi e inserire 0003 in un oggetto id_location,salvo in un oggetto name e così via dicendo.....
Puoi utilizzare un bell'automa a stati finiti. È una soluzione più efficiente rispetto alle regex.
:bimbo:
In teoria ad ogni regex corrisponde un automa a stati finiti: presa la regex ti puoi costruire l'automa corrispondente che riconosce tutte e sole le stringhe descritte dall'espressione regolare.
Tuttavia tempo fa avevo letto un articolo in cui diceva che la maggior parte dei linguaggi di programmazione (Java incluso) non lo fa in maniera efficiente.
Qualcuno potrebbe aiutarmi in pratica ho una stringa di questo genere:
ID_LOCATION (0003) NAME (salvo) TYPE (corridor) LOCATION_FARTHER (4)
e voglio estrarre solo la parte compresa tra le parentesi e inserire 0003 in un oggetto id_location,salvo in un oggetto name e così via dicendo.....http://img509.imageshack.us/img509/102/threadnecromancyns1nf0.jpg
Avevo pubblicato un tutorial l'altro giorno :doh:
http://www.hwupgrade.it/forum/showthread.php?t=2208183
Ma se sai già com'è formata la stringa le espressioni regolari non ti convengono!
[^ciao]Così non escludi una parola, ma tutte le lettere a, c, i, o.
Direi meglio [^c]|c(?!iao)
Vincenzo1968
19-06-2010, 12:33
In teoria ad ogni regex corrisponde un automa a stati finiti: presa la regex ti puoi costruire l'automa corrispondente che riconosce tutte e sole le stringhe descritte dall'espressione regolare.
Tuttavia tempo fa avevo letto un articolo in cui diceva che la maggior parte dei linguaggi di programmazione (Java incluso) non lo fa in maniera efficiente.
Quest'articolo spiega perché:
http://swtch.com/~rsc/regexp/regexp1.html
DanieleC88
19-06-2010, 13:03
Così non escludi una parola, ma tutte le lettere a, c, i, o.
Direi meglio [^c]|c(?!iao)
Quel thread risale ad un paio di anni fa, erano i miei primi incontri con una regex. :bimbo:
Quest'articolo spiega perché:
http://swtch.com/~rsc/regexp/regexp1.htmlArticolo direi molto interessante, anche se di lettura un po' pesante ;)
Quel thread risale ad un paio di anni fa, erano i miei primi incontri con una regex. :bimbo:Non ho dubbi ;)
Non volevo soltanto che qualcuno, leggendolo, lo prendesse per una buona soluzione.
Quest'articolo spiega perché:
http://swtch.com/~rsc/regexp/regexp1.html
Si, era proprio quello :D
grazie a tutti ora provo.....ciao e buona domenica a tutti
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.