Hola. Tengo que hacer un parser para procesar unos archivos de texto. La entrada va a venir con el siguiente formato:
20598.42 Concepto Detalle
20521.32 Concepto Detalle
10421.32 dato otrodato
...
Donde los dos primeros números de cada línea es el identificador y el resto son los datos.
Me gustaría saber una regular expresión que haga lo siguiente:
- Me encuentre todas las líneas que empiezan con 20
- De cada línea me devuelva solo los datos, sin el 20
He probado con algunas, pero no logro que me salga. La que más se acerco al resultado buscado fue ^(?:20)(.)* con el flag DOTALL (el punto machea los saltos de línea también). Pero si bien encuentra que hay coincidencia, me devuelve todo el string y solo quiero que me devuelva las líneas que coinciden.
El motor que estoy usando es el de java de la clase Pattern y lo hago de esta forma:
Matcher match = Pattern.compile("^(?:20)(.)*", Pattern.DOTALL).matcher("20504.291\r\n20509.21\r\n 10452\r\n");
if(match.matches())
{
System.out.println(match.group(0));
}
La salida es
20504.291
20509.21
10452
¿Alguna idea?
Muchas gracias por adelantado.
Saludos.