next up previous contents
Next: Estructuras de control Up: Interface con el usuario Previous: Configuración del shell   Índice General


Expresiones regulares

Se dice expresión regular de la descripción de una cadena en términos de repeticiones de carácteres. Así, por ejemplo, podemos decir que ``palabra formada de una mayúscula seguida de una o más minúsculas'' es la expresión regular de nombres. En términos de lenguaje matématico escribiríamos: 2#2 con lo cual significamos lo mismo que en la frase anterior. Los carácteres para denotar la repetición son: ? cero o una aparición, * cero o varias apariciones y + una o varias apariciones. Empleamos los corchetes [] para agrupar conjuntos de carácteres, en el ejemplo hablamos del conjunto de letras mayúsculas y en el segundo de las minúsculas. También podemos emplear el conjunto que no contiene a los carácteres dados, por ejemplo para hablar del conjunto de todos los carácteres salvo los signos de puntuación, diríamos: [^,;\.], que como vemos, al punto lo precedemos de una diagonal invertida para escapar5.2 su significado normal: cualquier carácter. El carácter ^ además tiene el significado de servir como ancla de principio de línea, mientras que el signo $ sirve como ancla del fin de línea. Por ejemplo si queremos hablar de las líneas que comiencen con un signo de igual y que terminen con un punto, diríamos: ^=(.*)\.$. Introducimos los paréntesis para especificar que después del siigno de igual se puede repetir cualquier carácter, aunque en el ejemplo es implícito.

Patrones repetitivos se pueden agrupar con paréntesis, por ejemplo para denotar la gramática que comprende a las palabras que comienzan con 3#3 y después se repite un numero arbitrario de veces la cadena 4#4 y terminan con 5#5, diríamos: c(ab)*d. Son palabras válidas en éste lenguaje: 6#6, etc.

Cualquiera de los carácteres especiales que sea necesario utilizar en la expresión con su representación, basta con escaparlos con la diagonal invertida. Si queremos representar el conjunto de palabras --incluidos signos de puntuación, dígitos, etc-- que van encerrados entre paréntesis, podemos usar: ( )(\(.*\))( )).


next up previous contents
Next: Estructuras de control Up: Interface con el usuario Previous: Configuración del shell   Índice General
Ismael Olea 2001-04-21