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