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. 
   
 


