PDA

View Full Version : [java] ricercare una parola in un testo con le espressioni regolari


lillo85
29-03-2011, 16:22
Salve ragazzi, in java impostando questa espressione regolare :

(?i).*parolaDaCercare.*

riesco a trovare la parolaDaCercare in un testo, però ho notato che mi seleziona la parola anche se non c è una vera e propria corrispondenza ma magari la parolaDaCercare è contenuta in un'altra, per esempio se devo cercare "fono" , mi trova una corrispondenza
sia

nella frase: " Un fono è una serie di suoni che condividono un'onda sonora ben definita"

sia

nella frase: "mi serve un telefono"

come posso fare per evitare ciò? grazie a tutti

WarDuck
29-03-2011, 16:32
Se devi semplicemente cercare una parola completa (che già conosci) in un testo usa la funzione contains() oppure indexOf() e non le espressioni regolari.

lillo85
29-03-2011, 17:00
ma anche con contains() mi dà lo stesso problema, cioè che mi trova la corrispondenza anche quando la parola è contenuta e non solo quando trova la parola esatta..

WarDuck
29-03-2011, 18:06
Hai ragione scusa non avevo letto attentamente... in questo caso con le espressioni regolari puoi usare la funzione matches() usando come pattern:

\bparola\b

Qui puoi trovare ulteriori informazioni:
http://download.oracle.com/javase/tutorial/essential/regex/bounds.html

lillo85
29-03-2011, 23:57
ok grazie era quello che mi serviva.. grazie!!