NOMBRE¶
regex - expresiones regulares
DESCRIPCIÓN¶
Una expresión regular es un patrón que describe un conjunto de cadenas
de caracteres. Las expresiones regulares se construyen de forma análoga a
las aritméticas, empleándose varios operadores para combinar
expresiones más pequeñas.
Hay dos versiones diferentes de la sintaxis de las expresiones regulares: la
``básica'' y la ``extendida''. En algunas implementaciones (como en la
del
grep de GNU), no hay ninguna diferencia entre las dos en cuanto a
la funcionalidad disponible con cada una. En otras implementaciones, las
expresiones regulares básicas son menos potentes. La descripción
siguiente se aplica a las expresiones regulares extendidas; las diferencias
con las básicas se resumen después.
Los bloques de construcción fundamentales son las expresiones regulares que
concuerdan con un solo carácter. La mayoría de los caracteres,
incluyendo todas las letras y los dígitos, son expresiones regulares que
concuerdan consigo mismos. Cualquier meta-carácter con un significado
especial puede ser protegido precediéndolo con una barra inclinada
inversa.
Una lista de caracteres rodeados por
[ y
] concuerda con cualquier
carácter solo de los de la lista; pero si el primer carácter de ella
es el acento circunflejo
^ entonces concuerda con cualquier
carácter que
no esté en la lista. Por ejemplo, la
expresión regular
[0123456789] concuerda con cualquier
dígito. Se puede especificar un rango de caracteres ASCII dando el
primero y el último, separados por un guión. Finalmente, ciertas
clases de caracteres tienen nombres predefinidos, y uno puede referirse a
ellas por éstos. Los nombres son auto-explicativos, y son los siguientes:
[:alnum:],
[:alpha:],
[:cntrl:],
[:digit:],
[:graph:],
[:lower:],
[:print:],
[:punct:],
[:space:],
[:upper:], y
[:xdigit:]. Por ejemplo,
[[:alnum:]] significa
[0-9A-Za-z], excepto en que la última
forma depende de que se use la codificación de caracteres ASCII, mientras
que la primera es transportable. (Note que en estos nombres de clases los
corchetes son parte de los nombres simbólicos, y deben incluirse aparte
de los que delimiten la lista entre corchetes.) La mayoría de los
meta-caracteres pierden su significado especial cuando están dentro de
listas. Para incluir un
] literal, póngase el primero de la lista.
De forma similar, para incluir un
^ literal, póngase en cualquier
posición menos en la primera. Finalmente, para incluir un
-
literal, póngase el último.
El punto
. concuerda con cualquier carácter. El símbolo
\w es un sinónimo de
[[:alnum:]] y
\W lo es de
[^[:alnum]].
El acento circunflejo
^ y el signo del dólar (o del escudo
portugués)
$ son meta-caracteres que concuerdan respectivamente
con la cadena vacía al principio y al final de una línea. Los
símbolos
\< y
\> concuerdan respectivamente con la
cadena vacía al principio y al final de una palabra. El símbolo
\b concuerda con la cadena vacía al borde de una palabra, y
\B concuerda con la cadena vacía si
no está en el
extremo de una palabra.
A una expresión regular que concuerde con un solo carácter puede
seguir uno de los varios operadores de repetición:
- ?
- El elemento precedente es opcional y concordaba como mucho
una vez.
- *
- El elemento precedente concordará cero o más
veces.
- +
- El elemento precedente concordará una o más
veces.
- {n}
- El elemento precedente va a concordar exactamente n
veces.
- {n,}
- El elemento precedente ha concordado n o más
veces.
- {,m}
- El elemento precedente es opcional y ha concordado como
mucho m veces.
- {n,m}
- El elemento precedente ha concordado como poco n
veces, pero no más de m veces.
Dos expresiones regulares pueden concatenarse; la expresión regular
resultante concuerda con cualquier cadena de caracteres formada por la
concatenación de dos subcadenas que concuerden respectivamente con las
subexpresiones concatenadas.
Dos expresiones regulares pueden juntarse por medio del operador infijo
|; la expresión regular resultante concuerda con cualquier cadena
que lo haga con cualquiera de las subexpresiones.
La repetición tiene precedencia sobre la concatenación, la cual a su
vez la tiene sobre la alternancia. Una subexpresión entera puede
encerrarse entre paréntesis para modificar estas reglas de precedencia.
La retrorreferencia
\n, donde
n es un solo dígito,
concuerda con la subcadena que previamente concordaba con la
n-sima
subexpresión entre paréntesis de la expresión regular.
En las expresiones regulares básicas, los meta-caracteres
?,
+,
{,
|,
(, y
) pierden su significado
especial; en su lugar emplee las versiones protegidas por la barra inclinada
inversa
\?,
\+,
\{,
\|,
\(, y
\).
OBSERVACIÓN¶
Esta página del Manual de
Debian/GNU Linux se ha extraído
de la de
grep(1).
VÉASE TAMBIÉN¶
regcomp(3),
grep(1)