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 ...

Por lo que puedo decir, es O (n ^ 2) o es? / ** * Conserva solo los elementos de esta lista que están contenidos en la * colección especificada. En otras palabras, elimina de esta lista todos ...

Tengo el proyecto SBT Scala que envía correos electrónicos con información a los usuarios. Todo funciona bien usando IntelliJ para ejecutarlo, pero necesito construir el proyecto, ponerlo en el servidor y ejecutarlo desde la terminal. En ...

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.