practica de expresiones regulares

Roberto Bonvallet rbonvall en inf.utfsm.cl
Lun Sep 20 20:13:28 CLT 2004


Carlos Bortolini escribio:
> Haber si me pueden dar una ayuda, necesito hacer una expresión regular
> en la cual tengas las siguientes particularidades: 
> 
> //Encontrar una cadena con el siguiente formato: 
> 
> define("_ALGO_POR_AQUI","Nada mas que esto")
> define ("_ALGO_POR_AQUI","Nada mas que esto")
>  define ("_ALGO_POR_AQUI","Nada mas que esto")
> define    ("_ALGO_POR_AQUI","Nada mas que esto")
> define	("_ALGO_POR_AQUI","Nada mas que esto")
> define		("_ALGO_POR_AQUI","Nada mas que esto")
[...]
> 1. *define* en minusculas
> 2. *_ALGO_POR_AQUI* en mayusculas
> 
> - despues del define pueden haber o no "n" cantidad de espacios o tabs.
> - en el texto para escrito en mayusculas tiene que estar entre comillas
> dobles 
> - validar que no este comentada la linea // /* #
> - pueden existir espacios/tabs antes del texto *define*

Acá va una compatible con POSIX:
^[[:blank:]]*define[[:blank:]]*\("[_[:upper:]]*","[[:alnum:][:blank:]]*"\)

Al probarla con gawk, calza todos los ejemplos propuestos.
Resultó harto más verbosa que una expresión Perl, por cierto.

Saludos!
-- 
Roberto Bonvallet


Más información sobre la lista de distribución Linux