Foros del Web » Programación para mayores de 30 ;) » Java »

Problema pattern y retorno de carro [Solucionado]

Estas en el tema de Problema pattern y retorno de carro [Solucionado] en el foro de Java en Foros del Web. Cita: String b = "Prueba\n de pattern"; System.out.println(b.matches(".*de.*")); No sé si existe alguna razón, pero el caso es que si en el texto hay un ...
  #1 (permalink)  
Antiguo 27/07/2010, 03:05
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Problema pattern y retorno de carro [Solucionado]

Cita:
String b = "Prueba\n de pattern";
System.out.println(b.matches(".*de.*"));
No sé si existe alguna razón, pero el caso es que si en el texto hay un retorno de carro, el matches me devuelve false.

Para solucionarlo puedo elminar el \n usando un split o un replace, pero me gustaría saber si existe algún tipo de explicación, por ahora yo no he encontrado nada.

Última edición por Xerelo; 27/07/2010 a las 16:34
  #2 (permalink)  
Antiguo 27/07/2010, 06:14
 
Fecha de Ingreso: noviembre-2006
Mensajes: 56
Antigüedad: 18 años, 1 mes
Puntos: 1
Respuesta: Problema pattern y retorno de carro

Hola, la expresión regular . no reconoce los terminadores de línea, para que lo haga tienes que usar el flag DOTALL (ver http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html#lt)

Podrías hacerlo así:

Código:
Pattern p = Pattern.compile(".*de.*", Pattern.DOTALL);
Matcher m = p.matcher("Prueba\n de pattern");
System.out.println(m.matches());
Un Saludo.
  #3 (permalink)  
Antiguo 27/07/2010, 16:46
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Problema pattern y retorno de carro [Solucionado]

Ok, gracias, debería haber bajado más el scroll de la API.

Etiquetas: pattern, solucionado, carrito
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:18.