Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/07/2013, 06:13
viringas
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
problema con matcher

Hola,

tengo un problema a la hora de matchear una condicion en una instruccion if

es la siguiente, texto un texto que recorro linea a linea,

lo que quiero guardar empieza en una linea por 4 digitos numericos y lluego texto que acaba en la palabra ("Página"). lo que hago es que si la linea empieza con 4 digitos y contiene Página copie esa linea.

si la linea empieza por digitos numericos y la siguiente linea contiene Página

copie dicha linea y la siguiente, y ahora viene mi duda.

lo hago tal que asi

Código Java:
Ver original
  1. if ( match.find() && linea.contains( "Página" ) )
  2.                     {
  3.                         entrada = linea;
  4.                         //System.out.println( "ENTRADA1: " + entrada );
  5.                     }
  6. if ( match.find() && siguienteLinea.contains( "Página" ) )
  7.                         {
  8.                             entrada = linea + "\n" + siguienteLinea;
  9.                             //System.out.println( "ENTRADA22: " + entrada );
  10.                             i++;
  11.                            
  12.                         }


para el primer caso funciona a la perfeccion, pero en el segundo caso no funciona bien, y el fallo esta en match.find

por si es de interes, la declaracion de match lo tengao asi


Código Java:
Ver original
  1. Pattern patron = Pattern.compile("^[0-9][0-9][0-9][0-9]");
  2. Matcher match = patron.matcher(linea);


alguien puede decirme que es lo que falla?

segun lei en la apli de java, find() devuelve true si encontro el patron en la cadena que se le pasa, y en mi caso esta devolviendo false en el segundo if

gracias