PDA

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:

cobra85
18-06-2010, 15:33
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.....

WarDuck
19-06-2010, 11:47
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.

MaxArt
19-06-2010, 12:00
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:

MaxArt
19-06-2010, 13:55
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.

WarDuck
19-06-2010, 15:16
Quest'articolo spiega perché:

http://swtch.com/~rsc/regexp/regexp1.html

Si, era proprio quello :D

cobra85
20-06-2010, 08:46
grazie a tutti ora provo.....ciao e buona domenica a tutti