Asignar("texto_indice.php","Índice"); $navIzq->Asignar("texto_intro.php","Introducción"); $navDer->Asignar("texto_cap2.php","Capítulo 2") ?>

1. Las expresiones regulares.

Las expresiones regulares son cadenas de caracteres (unos normales y otros con significados especiales) que representan un conjunto de cadenas más complejo en forma de expresiones simples. Debido a que muchos de los caracteres que utilizan expresiones regulares tienen significados especiales en el shell es mejor encerrar la expresiones entre comillas. Las comillas simples ' son las más seguras, pero a menudo las comillas dobles " son suficientes. En los casos sencillos no es necesario que el patrón esté entrecomillado.

1.1 Correspondencia de principio y fin de fichero.

Un carácter circunflejo (^) que aparece al principio de una cadena se corresponde con el comienzo de una línea. Similarmente, el signo dólar ($) al final de una cadena se corresponde con el fin de línea. No hay ningún carácter especial que se corresponda a un salto de línea, aunque sí es posible identificar una línea vacía.

EJEMPLOS.

Patrón Descripción
"seda" Aparición de la palabra seda en una línea del fichero.
"^patron" Aparición de la palabra patron al principio de una línea del fichero.
"dado$" Aparición de la palabra dado al final de una línea del fichero.
"^lugar$" Línea que sólo contiene la palabra lugar.
"^$" Línea vacía.

1.2 Correspondecia con cualquier carácter.

El punto (.) tiene un significado especial y se corresponde con cualquier carácter (incluidos caracteres especiales, dígitos, espacios en blanco, etc.).

EJEMPLOS.

Patrón Descripción
" a... " Aparición de una a seguida por tres caracteres cualesquiera, precedidos y acabados por espacio (es decir, aquellas palabras de cuatro letras que comienzan con a como asta, a12%, etc.).
" a...\.$" Líneas que acaban en una palabra de cuatro letras que empieza por a seguidas por un punto.
"^AM. $" Líneas que contienen únicamente palabras de al menos tres caracteres que empiezan por AM y acaban en espacio (el punto podría representar otro espacio).

1.3 Conjuntos de caracteres.

Los caracteres encerrados entre corchetes ([ y ]) especifican un conjunto de caracteres que van a ser buscados. Dentro del corchete, un signo menos (-) entre dos caracteres especifica un rango. Notar que dicho rango tiene que ser ascendente; de lo contrario se pierde la interpretación.

¡Cuidado! Si el carácter ^ aparece entre corchetes adquiere el significado de negación del conjunto.

EJEMPLOS.

Patrón Descripción
"[a-z]" Todas las minúsculas.
" a[a-z]\.$" Líneas que acaban en palabras de dos letras que empiezan por a y un punto.
"^[^a-z]" Líneas que no comiencen por letras minúsculas (que comiencen con algo distinto de letras minúsculas).
"[-ab]" Carácter - ó a ó b.
"[d-a]" Carácter d ó - ó a.

1.4 Correspondencia repetida de patrones.

A veces interesa buscar un patrón que se repite un número determinado de veces. Esta especificación del número de repeticiones se conoce como cierre y su formato general es {n,m} donde n es el número mínimo de repeticiones y m el número maximo. Si falta n se toma como 1 y si falta m se toma como infinito (o al menos enorme).

El cierre es utilizado por muy pocos programas. Sin embargo sí están disponibles algunas formas abreviadas que suelen utilizar casi todos los programas de manipulación de textos

Patrón Descripción
* equivale a {0,} significando que el patrón que le precede va a ser repetido cero o más veces.
+ equivale a {1,} significando que el patrón que le precede va a ser repetido una o más veces.
? equivale a {0,1} significando que el patrón que le precede puede ser repetido sólo cero o una vez.

EJEMPLOS.

Patrón Descripción
" [Dd]{3}\.$" Sería equivalente a " DDD." o " ddd."
"^ +$" Líneas que sólo contienen espacios en blanco (al menos uno).

1.5 Anulación del significado especial de un carácter.

El carácter de barra invertido (\) delante de otro carácter anula el significado especial de este último.

EJEMPLO.

Patrón Descripción
"\.\\" Aparición de un punto seguido de un '\' en una cadena.

1.6 Grupos de caracteres.

Pueden formarse grupos de caracteres cuando éstos se encierran entre paréntesis. De esta forma se pueden tratar palabras. Dentro de grupos de caracteres puede utilizarse el carácter de barra vertical '|' para separar opciones alternativas.

EJEMPLO.

Patrón Descripción
"(pa)+" Líneas que contienen la palabra pa o papa o papapa y así sucesivamente.
"J. (L.|M.)" Líneas en que aparece la cadena 'J. L.' o 'J. M.'.