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

analizar ficheros con expresiones regulares

Estas en el tema de analizar ficheros con expresiones regulares en el foro de .NET en Foros del Web. Hola a todos, estoy empezando con esto del C# y tengo un problemilla (qué raro, no?) La cuestión es que tengo que analizar ficheros en ...
  #1 (permalink)  
Antiguo 25/06/2008, 04:13
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
analizar ficheros con expresiones regulares

Hola a todos,

estoy empezando con esto del C# y tengo un problemilla (qué raro, no?) La cuestión es que tengo que analizar ficheros en busca de las posibles funciones que tenga para luego hacer un posterior tratamiento. Los ficheros suelen tener la siguiente estructura:

Código:
FUNCTION nombre_de_funcion1(argumentos)

...
codigo de la funcion
...

END FUNCTION

######################
# posible comentario
######################
FUNCTION nombre_de_funcion2(argumentos)

...
codigo de la funcion
...

END FUNCTION

FUNCTION nombre_de_funcion3(argumentos)

...
codigo de la funcion
...

END FUNCTION
El patrón que estoy probando es:
Código:
string patron_function = @"FUNCTION(.*)END\s+FUNCTION\s?(.[^F#]*)?";
Regex rF = new Regex(patron_function, RegexOptions.IgnoreCase | RegexOptions.Singleline);
this.mcFunciones = rF.Matches(strTexto);
con lo que consigo una coincidencia que va desde el primer FUNCTION encontrado hasta el último END FUNCTION que no es lo deseado (quisiera que cada coincidencia fuese desde FUNCTION hasta el siguiente END FUNCTION) ¿alguien me puede ayudar? Mil gracias
__________________
http://www.nosoynadie.net/
  #2 (permalink)  
Antiguo 25/06/2008, 09:22
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Respuesta: analizar ficheros con expresiones regulares

Simplemente cambia tu expresión regular por: FUNCTION(.*?)END\s+FUNCTION

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 25/06/2008, 11:38
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: analizar ficheros con expresiones regulares

Cita:
Iniciado por xknown Ver Mensaje
Simplemente cambia tu expresión regular por: FUNCTION(.*?)END\s+FUNCTION
Saludos
Hola xknown,

lo probaré mañana en cuanto llegue al curro pero me quiere como sonar este patrón (creo haberle usado y que no funcionaba) pero, así todo, ya te cuento
__________________
http://www.nosoynadie.net/
  #4 (permalink)  
Antiguo 26/06/2008, 01:36
Avatar de nosoynadie  
Fecha de Ingreso: noviembre-2005
Ubicación: dando vueltas por aquí
Mensajes: 206
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: analizar ficheros con expresiones regulares

Hola de nuevo,

tu código funciona correctamente, gracias!!! Lo que te comentaba que me sonaba era porque había hecho pruebas con el patrón:

Código:
FUNCTION(.*)END\s+FUNCTION
que es como el tuyo pero sin el ? y no funcionaba bien eres un crack!!!
__________________
http://www.nosoynadie.net/
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 16:58.