Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/04/2006, 09:15
gnfrs
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
Expresiones regulares

Hola,

Tengo una cadena como la siguiente:

INI hola FIN INI chau FIN

Yo quiero (mediante expresiones regulares) obtener lo que hay entre los INI - FIN.

Para ello utilizo la expresión siguiente:

INI(.*)FIN

El problema está en que esa expresión me devuelve hola FIN INI chau, por lo que la expresión debería ser algo como esto:

INI([^FIN]*)FIN

Pero aquí hay otro problema, si la cadena anteriormente dicha es de esta forma:

INI hola F hola FIN INI chau FIN

La expresión regular me devuelve sólo la palabra chau debido a que el circunflejo ( ^ ) está negando cualquier caracter de la clase [FIN], es decir [^FIN] me niega cualquier letra F, I o N.

Lo que yo quiero es que niegue la palabra completa (FIN), he visto en un manual que puedo usar el punto de esta manera para explicitar la palabra completa, pero no me da resultado alguno: [^.FIN].

También he probado con muchas combinaciones pero no funciona por ejemplo:

[^[.FIN]]
[^(FIN)]

Si me pueden dar una mano les agradecería mucho.

Un saludo,