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

Expresion regular para obtener líneas que comienzan con un determinado ID

Estas en el tema de Expresion regular para obtener líneas que comienzan con un determinado ID en el foro de Programación General en Foros del Web. Hola. Tengo que hacer un parser para procesar unos archivos de texto. La entrada va a venir con el siguiente formato: 20 598.42 Concepto Detalle ...
  #1 (permalink)  
Antiguo 16/09/2009, 10:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 8 meses
Puntos: 9
Expresion regular para obtener líneas que comienzan con un determinado ID

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.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 18/09/2009, 10:10
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Expresion regular para obtener líneas que comienzan con un determinado ID

- Me encuentre todas las líneas que empiezan con 20
^(20)(.*)

- De cada línea me devuelva solo los datos, sin el 20
match.group(2)

Lo hice en python me imagino que ha de ser lo mismo en java
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 23:06.