Patrón de coincidencia de expresiones regulares de Java

Necesito verificar un patrón contra algún texto (tengo que verificar si mi patrón está dentro de muchos textos).

Este es mi ejemplo

String pattern = "^[a-zA-Z ]*toto win(\\W)*[a-zA-Z ]*$";    
if("toto win because of".matches(pattern))
 System.out.println("we have a winner");
else
 System.out.println("we DON'T have a winner");

Para mi prueba, el patrón debe coincidir, pero el uso de mi expresión regular no coincide. Debe coincidir con :

" toto win bla bla"

"toto win because of"
"toto win. bla bla"


"here. toto win. bla bla"
"here? toto win. bla bla"

"here %dfddfd . toto win. bla bla"

No debe coincidir:

" -toto win bla bla"
" pretoto win bla bla"

Intento hacerlo usando mi expresión regular pero no funciona.

¿Me puede señalar lo que estoy haciendo mal?

Respuesta 1

Simplemente cambie su código a String pattern = "\\s*toto win[\\w\\s]*";

\ W significa carácter sin palabra, \ w significa carácter de palabra (a-zA-Z_0-9).

[\\w\\s]* coincidirá con cualquier cantidad de palabras y espacios después de "toto win".

ACTUALIZAR

Para reflejar sus nuevos requisitos, esta expresión funcionaría:

"((.*\\s)+|^)toto win[\\w\\s\\p{Punct}]*"

((.*\\s)+|^) coincide con cualquier cosa seguida de al menos un espacio O el comienzo de la línea.

[\\w\\s\\p{Punct}]* coincide con cualquier combinación de palabras, números, espacios y signos de puntuación.

Respuesta: 2

La siguiente expresión regular

^[a-zA-Z. ]*toto win[a-zA-Z. ]*$

Coincidirá

 toto win bla bla
toto win because of
toto win. bla bla

Y no coincide

-toto win bla bla"
Respuesta: 3

le falta espacio entre winy la siguiente palabra en su patrón

prueba esto: \\stoto\\swin\\s\\w

http://gskinner.com/RegExr/ aquí puedes probar tus expresiones regulares

Respuesta: 4

¿Hay alguna manera de configurar Sonar para ignorar sentencias if de una sola línea como if (value == true) return; mientras marca declaraciones if de varias líneas sin llaves, como if (value == true) return; como ...

podemos eliminar la fórmula de una celda mediante cell.setCellFormula (nulo). pero si quiero hacer que toda la fórmula de la hoja sea gratuita.

Estoy usando NameCallback y PasswordCallback para nombre de usuario y contraseña. Para nombre de usuario y contraseña, aparece una ventana emergente en el navegador y cuando ingreso el nombre de usuario y la contraseña, JAAS autentica mi solicitud. Sobre el ...

Estoy tratando de ejecutar el código aquí, http://code.google.com/p/android-market-api/wiki/HowDownloadApps, y tengo este código en un archivo Tester.java (que se muestra a continuación). Dos .jars también están en el mismo ...