Clases
Podemos especificar clases de caracteres según varias sintaxis, POSIX, tradicional o Unicode.
Según la sintaxis de clases POSIX, podemos indicar [:clase:] donde clase puede ser alguna de las siguientes expresiones:
Clase |
Significado |
[:alpha:] |
carácter alfabético |
[:alnum:] |
carácter alfanumérico |
[:ascii:] |
carácter ascii |
[:blank:] |
espacio, incluye tabulador (también \s según la sintaxis tradicional) |
[:cntrl:] |
carácter de control |
[:digit:] |
un dígito (también \d según la sintaxis tradicional) |
[:graph:] |
carácter gráfico |
[:lower:] |
letra minúscula |
[:print:] |
carácter imprimible |
[:punct:] |
carácter de puntuación |
[:space:] |
espacio (también \s según la sintaxis tradicional) |
[:upper:] |
letra mayúscula |
[:word:] |
palabra (también \w según la sintaxis tradicional) |
[:xdigit:] |
dígito hexadecimal |
En la sintaxis tradicional, además tenemos:
Metacarácter |
Significado |
\D |
cualquier carácter que no sea un dígito decimal (equivalente a [^:digit:]) |
\S |
cualquier carácter que no sea un espacio en blanco (equivalente a [^:blank:] |
\w |
cualquier carácter de de una palabra |
\W |
cualquier carácter que no sea de una "palabra" |
Definición de expresión regular
Existen distintas formas de aplicar expresiones regulares y puede que no todos los programas las admitan en su totalidad. Más adelante, en los ejemplos veremos ciertos programas para ver qué podemos aplicar en cada caso y por qué se producen errores de interpretación. Podemos especificar la sintaxis, POSIX, tradicional o Unicode. Nos vamos a centrar en la sintaxis POSIX, aunque también veremos a la vez algo de la sintaxis tradicional. Aquí vamos a ver una visión general y completa de las expresiones regulares.
Como pueden servir la expresiones regulares
Las expresiones regulares nos van a resultar de suma utilidad para realizar operaciones sobre cadenas de caracteres, tanto de comprobación como de edición, con una potencia imposible de obtener por lo sistemas tradicionales que proporcionan los editores de texto.
Por ejemplo, si queremos encontrar en una página web todos los colores (bgcolor) de las celdas (<td>)de una tabla tendríamos la siguiente expresión:
/<td[^>]*?bgcolor=.?#([0-9a-fA-F]{6})[^>]*>/ |
Otro ejemplo, muy simple y mejorable, para verificar una dirección simple de correo electrónico:
[A-z0-9_]+@([A-z0-9]+\.[a-z]{2,4} |
Al principio parece un dialecto del idioma del planeta Vulcano, pero poco a poco iremos familiarizandonos con él y comprendiendo el significado de su sintaxis.
Metacaracteres de expresiones regulares
Existen ciertos caracteres que tienen un significado específico dentro de una expresión regular. Estos caracteres especiales, o metacaracteres, se pueden aplicar a definiciones de carácter para especificar con qué caracteres se concuerda, cuantificadores para especificar el modelo de repetición de los caracteres y también anclajes para especificar una posición dentro de un texto.
Estos caracteres, como hemos visto, se denominan metacaracteres porque tienen un significado que va más allá del símbolo que representa y tiene un comportamiento especial en una expresión regular: