Introducción a las expresiones regulares
Editar ficheros con expresiones regulares
Un de las principales ventajas de las expresiones regulares es poder editar ficheros, sustituir textos o generar nuevos ficheros manipulando el contenido de otros.
sed
Con sed podemos ejecutar:
sed "s/expresión_regular/sustitución/gi" fichero |
/g indica edición global y afecta a todas las apariciones del texto correspondiente a la expresión regular en el fichero. Si omitimos /g la sustitución sólo afecta a la primera aparición de cada línea. La opción /i evita la distinción entre mayúsculas y minúsculas.
Definiciones de carácter
Primeramente pasamos a la definición de caracteres en una expresión regular. Vamos a detallar los metacaracteres que permiten especificar una plantilla que concuerde con un texto de unas características concretas. Dentro de las definiciones de caracteres podremos especificar caracteres genéricos, rangos de caracteres, exclusión de caracteres, literales y otras características adicionales.
Construyendo expresiones regulares: ejemplos
Sintaxis de fecha del tipo dd/mm/aa
En este ejemplo sólo pretendemos comprobar que la sintaxis de la fecha es correcta, es decir que estábien construida independientemente de que la fecha sea realmente válida.
Existen varios métodos de búsqueda
/i evita la distinción entre mayúsculas y minúsculas.
/s activa modo "línea única". En este modo los saltos de líneas verifican el punto.
/m activa modo "multilínea". En este modo los saltos de líneas verifican el $ y el carácter siguiente el ^.
/g global, hace referencia a todas las apariciones de la expresión regular. Si se omite sólo hacemos referencia a la primera.
Ejemplos
Expresión para comprobar una dirección de correo electrónico:
"^([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*@([0-9a-zA-Z]+)([._-]([0-9a-zA-Z]+))*[.]([0-9a-zA-Z]){2}([0-9a-zA-Z])?$" |
Expresión de un hiperenlace
"<a[ ]{1,}href=[\"']{0,}([a-zA-Z0-9/:~._#]{0,})[\"']{0,}[^>]{0,}>([^<]{0,})</a>" |