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.
|
Metacarácter |
Significado |
|
. |
Concuerda con cualquier carácter (salvo fin de línea en modo multilínea) |
|
() |
Subexpresión o grupo |
|
[ ] |
Conjunto de caracteres |
|
[ - ] |
Rango de caracteres |
|
[^ ] |
Excepto ese conjunto de caracteres |
|
| |
Permite una alternativa para elegir entre dos expresiones |
|
/ / |
Delimita una expresión regular |
|
\ |
Protege el siguiente metacarácter |
Las expresiones permiten también especificar caracteres especiales no imprimibles:
|
Metacarácter |
Significado |
|
\a |
pitido, el carácter BEL (07 en hexadecimal) |
|
\e |
escape (1B en hexadecimal) |
|
\cx |
"control-x", donde x es el carácter correspondiente |
|
\f |
nueva página (0C hexadecimal) |
|
\n |
nueva línea (0A hexadecimal) |
|
\r |
retorno de carro (0D hexadecimal) |
|
\t |
tabulador (09 hexadecimal) |
|
\xhh |
carácter con código hh hexadecimal |
|
\ddd |
carácter con código ddd en octal |
Ejemplos:
|
Expresión |
Significado |
|
/[a-z]/ |
una letra minúsculas. El "-" indica un rango, que en este caso comienza en "a" y termina en "z". |
|
/[A-Z]/ |
una letras mayúscula |
|
/[0-9]/ |
un dígito |
|
/[,'¿!¡;:.?]/ |
un carácter de puntuación |
|
/[A-Za-z]/ |
una letra salvo acentuadas y ñ |
|
/[A-Za-z0-9]/ |
una letra, salvo acentuadas y ñ, o un dígito |
|
/[^a-z]/ |
cualquier carácter salvo una letras minúscula |
|
/[^0-9]/ |
Cualquier carácter salvo un número. |
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: