Expresiones regulares

17 junio, 2015
admin
Comentarios desactivados

Introducción

Vamos a explicar las expresiones regulares porque se utilizan a menudo desde una gran variedad de aplicaciones en los SO tipo Unix como Linux. Permiten reconocer una serie de cadenas de caracteres que obedecen a cierto patrón que llamamos expresión regular.

Por ejemplo, si deseamos buscar líneas que contenga las palabras ‘hola’ o ‘adiós’ en los ficheros del directorio actual haremos:

 

$ egrep 'hola|adiós' *


No todos los comandos usan de forma idéntica las expresiones regulares. Algunos de los comandos que usan expresiones regulares son grep, egrep, sed, vi, awk, etc. Actualmente algunos lenguajes modernos como perl1 incluyen capacidad de manejar expresiones regulares lo cual les da una gran potencia y para lenguajes más antiguos como “C” existen librerías para poder usar expresiones regulares. En resumen las expresiones regulares están siendo incorporadas en distintos sitios y ya no están limitadas a su uso en SO tipo Unix. Cada comando o aplicación implementa las expresiones regulares a su manera aunque en general son todas bastantes parecidas. Por ejemplo grep permite usar expresiones regulares sencillas mientras que egrep es capaz de usar expresiones regulares más complejas. Otros comandos adaptan el uso de expresiones a sus particulares necesidades y por ello si bien se puede hablar en general de ellas hay que tener en cuenta las peculiaridades de cada caso que deberán ser consultadas en las paginas del manual de cada comando. Las expresiones regulares vienen a ser una especie de lenguaje y cada comando usa su propio dialecto. En realidad las diferencias entre los distintos dialectos suelen ser muy pocas. Por ejemplo si un comando usa los paréntesis y además admite el uso de expresiones regulares extendidas se establecerá una forma de distinguir si los paréntesis deben ser interpretados como patrón de la expresión regular o como otra cosa. Para ello se suele usar los paréntesis precedidos del carácter escape ‘\’.

Hablando más formalmente, las expresiones regulares son una herramienta para definir patrones de búsqueda y reemplazo. En ellas se definen lo que llamaremos átomos que serán las partes que buscaremos. Se supone que lo que buscamos no lo conocemos (si no no lo buscaríamos), así que tenemos que definir un átomo para cada parte que busquemos. En los patrones podemos hacer referencias a “un caracter cualquiera”, “el comienzo de línea”, “el final de línea” y cosas así.

Las expresiones regulares suelen construirse a partir de caracteres normales y/o de caracteres especiales, algunas veces llamados metacaracteres o wildcards. Las expresiones regulares básicas y las extendidas difieren solo en los metacaracteres que contienen.

Los metacaracteres de las expresiones regulares son:

 

Básicas: ^ $ . * \( \) [ \{ \} \


 

Extendidas: | ^ $ . * + ? ( ) [ { } \

Nota: Adicionalmente, algunos comandos como vi, ex y egrep (grep –E) también aceptan: \< \>
La siguiente tabla muestra el significado de cada uno de ellos:

tabla1
tabla2
Los comandos que usan expresiones regulares básicas y extendidas son los siguientes:
tabla3
CONTENIDO PATROCINADO POR

FPla Informatica

Diseño web y Marketing digital
Disponga de una página web o un comercio electrónico de alta calidad a precios muy competitivos.
ACCEDER A FPLA INFORMATICA