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

Macheo de varias lineas

Estas en el tema de Macheo de varias lineas en el foro de RegExp en Foros del Web. Hola gente, a ver si me podéis echar una mano con una expresión regular que tengo que hacer. La verdad es que no trabajo en ...
  #1 (permalink)  
Antiguo 30/04/2013, 04:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Macheo de varias lineas

Hola gente, a ver si me podéis echar una mano con una expresión regular que tengo que hacer. La verdad es que no trabajo en esta rama de la informática pero esta vez me ha tocado hacer esto, y estoy perdido.
Os cuento lo que necesito a ver si se os ocurre el cómo; voy a chequear que cuando se da una palabra en un texto, no sé de otra palabra X líneas más abajo de donde se encontro la primera palabra.
Es decir, "gráficamente", estoy buscando cuando en el fichero se da Grupo 1 y no se encuentra Valor D. En el fichero podrá haber muchas agrupaciones de valores pero necesito ver en cuales de ellas tengo un determinado valor, en el ejemplo Valor D.
Grupo 1
Valor A
Valor B
Valor C
Valor F
Grupo 2
Valor A
Valor B
Valor D
Valor E
Grupo N
....
....

¿Qué tengo hasta ahora?. Tengo una expresión que hace esto pero siempre y cuando Valor A este justo debajo de Grupo 1.
^Grupo 1\S+
^(?!.*Valor A).*$
Tengo otra expresión regular que chequea la existencia de Grupo 1 y un número de líneas indefinido más abajo la existencia de Valor C.
(?s)Grupo 1.*?Valor C
Y este es el mix que he hecho de ambas.
(?s)^(Grupo 1)$.*?^(?!Valor D)$
Según creo esta regex da por bueno Grupo 1 independientemente de que exista o no Valor D, pero no se me ocurre cómo solucionar este comportamiento

¿Me podéis ayudar?, ¿a alguien se le ocurre cómo conseguir el resultado?. A lo mejor lo que no tengo que hacer es un simple mix de ambas expresiones y hay que plantear la expresión de cero, la verdad es que no sé.

En cualquier caso muchas gracias de antemano por vuestro tiempo
Andres
  #2 (permalink)  
Antiguo 30/04/2013, 08:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Macheo de varias lineas

Según entiendo el problema lo mejor sería convertir el texto en una estructura de datos, y de ahí operarla, resolver el problema que tienes únicamente con expresiones regulares no te va a llevar a nada claro.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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:02.