2012-08-22 19 views
5

Supongamos que tengo un poco de hilo, y ejecutar las siguientes pruebas en él:subcadena se encuentra, pero la expresión regular no

response.indexOf("</p:panelGrid>"); 
response.matches(".*</p:panelGrid>.*"); 

¿Cómo es posible que indexOf encuentra la subcadena (que no vuelva -1), pero el expresión regular en la segunda prueba ¿no coincide con?

Me he encontrado con este problema al intentar escribir una prueba que verifica si los taglibs se representan correctamente en JSF con Pax Web. No he podido reproducir este comportamiento fuera de esta prueba.

+0

Probablemente tenga caracteres de escape. – m3th0dman

+6

Proporcione una cadena que muestre dicho comportamiento. –

Respuesta

7

El . coincide con todo, excepto los caracteres de nueva línea. Debe cambiar su cadena de expresiones regulares a

"(?s).*</p:panelGrid>.*" 

A continuación, coincidirá siempre.

+0

Supongo que debería haber leído el manual mejor. ¡Gracias! –

Cuestiones relacionadas