Caracteres de control de expresión regular

Los caracteres de control son metacaracteres, operadores y caracteres de texto de sustitución que se pueden utilizar en expresiones regulares.

Sólo se reconocen los caracteres de media anchura. Los caracteres de anchura completa que corresponden a los caracteres en las tablas siguientes no se reconocen.

Tabla 1. Metacaracteres de expresión regular
Carácter Permitido fuera de los conjuntos Permitido dentro de los conjuntos Descripción
\a Coincidencia con un BELL, \u0007
\A   Coincidencia al principio de la entrada. Se diferencia de ^ en que \A no coincide después de una línea nueva dentro de la entrada.
\b   Coincidencia si la posición actual es un límite de palabra. Los límites se producen en las transiciones entre caracteres de palabra (\w) y caracteres de no palabra (\W), con marcas de combinación ignoradas.
\B   Coincidencia si la posición actual no es un límite de palabra.
\cX Coincidencia con un carácter control-X.
\d Coincidencia con cualquier carácter con la Categoría general de Unicode General de Nd (Número, Dígito decimal.)
\D Coincidencia con cualquier carácter que no sea un dígito decimal.
\e Coincidencia con un ESCAPE, \u001B
\E Termina una secuencia \Q ... \E entre comillas.
\f Coincidencia con FORM FEED, \u000C.
\G   Coincidencia si la posición actual está al final de la coincidencia anterior.
\n Coincidencia con LINE FEED, \u000A
\N{UNICODE CHARACTER NAME} Coincidencia con el carácter con nombre.
\p{UNICODE PROPERTY NAME} Coincidencia con cualquier carácter con la propiedad Unicode especificada.
\P{UNICODE PROPERTY NAME} Coincidencia con cualquier carácter que no tiene la propiedad Unicode especificada.
\Q Coloca las comillas alrededor de todos los caracteres hasta \E
\r Coincidencia con CARRIAGE RETURN, \u000D
\s Coincidencia con un carácter de espacio en blanco. El espacio en blanco se define como [\t\n\f\r\p{Z}]
\S Coincidencia con un carácter que no es de espacio en blanco.
\t Coincidencia con HORIZONTAL TABULATION, \u0009
\uhhhh Coincidencia con el carácter con el valor hexadecimal hhhh
\Uhhhhhhhh Coincidencia con el carácter con el valor hexadecimal hhhhhhhh. Se deben proporcionar exactamente 8 dígitos hexadecimales, aunque el punto de código Unicode más grande es \U0010ffff
\w Coincidencia con un carácter de palabra. Los caracteres de palabra son los siguientes:

[\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\u200c\u200d]

\W Coincidencia con un carácter que no es de palabra.
\x{hhhh} Coincidencia con el carácter con el valor hexadecimal hhhh. Se pueden proporcionar de uno a 6 dígitos hexadecimales.
\xhh Coincidencia del carácter con un valor hexadecimal de dos dígitos hh
\X   Coincidencia con Grapheme Cluster.
\Z   Coincidencia si la posición actual está al final de la entrada, pero antes del terminador de línea final, si existe uno.
\z   Coincidencia si la posición actual está al final de la entrada.
\n   Referencia anterior. Coincidencia con cualquiera que sea el grupo de captura nth coincidente. n debe ser un número > 1 y < el número total de grupos de captura del patrón.
\0ooo Coincidencia con un carácter octal. 'ooo' es de uno a tres dígitos octales. 0377 es el carácter octal más largo permitido. El cero a la izquierda es necesario; distingue constantes octales de referencias anteriores.
[pattern] Coincidencia con cualquier carácter del conjunto.
.   Coincidencia con cualquier carácter.
^   Coincidencia al principio de una línea.
$   Coincidencia al final de una línea.
\   Coloca las comillas alrededor del carácter que sigue. Los caracteres que deben tener comillas alrededor que se van a tratar como literales son * ? + [ ( ) { } ^ $ | \ . /
\   Coloca las comillas alrededor del carácter que sigue. Los caracteres que deben entrecomillarse para ser tratados como literales son [ ] \
Los caracteres que puede que deban entrecomillarse, dependiendo del contexto son - &
Tabla 2. Operadores de expresiones regulares
Operador Descripción
| Alternación. A|B coincide con A oB
* Coincide 0 o más veces. Coincide tantas veces como sea posible.
+ Coincide 1 o más veces. Coincide tantas veces como sea posible.
? Coincide cero o una vez. Es preferible una.
{n} Coincide exactamente n veces.
{n,} Coincidencia de al menos n veces. Coincide tantas veces como sea posible.
{n,m} Coincidencia entre n y m veces. Coincide tantas veces como es posible, pero no más de m.
*? Coincide 0 o más veces. Coincide tan pocas veces como sea posible.
+? Coincide 1 o más veces. Coincide tan pocas veces como sea posible.
?? Coincide cero o una vez. Es preferible cero.
{n}? Coincide exactamente n veces.
{n,}? Coincide al menos n veces, pero no más de las necesarias para una coincidencia de patrón general.
{n,m}? Coincidencia entre n y m veces. Coincide tan pocas veces como es posible, pero no menos de n
*+ Coincide 0 o más veces. Coincide tantas veces como sea posible cuando se encuentra pro primera vez, no lo vuelva a intentar con menos aunque falle la coincidencia general (Coincidencia posesiva)
++ Coincide 1 o más veces. Coincidencia posesiva.
?+ Coincidencia cero o una vez. Coincidencia posesiva.
{n}+ Coincide exactamente n veces.
{n,}+ Coincidencia de al menos n veces. Coincidencia posesiva.
{n,m}+ Coincidencia entre n y m veces. Coincidencia posesiva.
( ... ) Paréntesis de captura. El rango de entrada que ha coincidido con la subexpresión entre paréntesis está disponible después de la coincidencia.
(?: ... ) Paréntesis que no son de captura. Agrupa el patrón incluido, pero no proporciona la captura de texto coincidente. Más eficaz que los paréntesis de captura.
(?> ... ) Paréntesis de coincidencia atómica. La primera coincidencia de la subexpresión entre paréntesis es la única que se ha intentado. Si no lleva a una coincidencia de patrón general, haga una copia de seguridad de la búsqueda para obtener una coincidencia con una posición antes de "(?>"
(?# ... ) Comentario en formato libre (?# comment )
(?= ... ) Aserción de anticipación. Verdadero si el patrón entre paréntesis coincide con la posición de entrada actual, pero no adelanta la posición de entrada.
(?! ... ) Aserción de anticipación negativa. Verdadero si el patrón entre paréntesis no coincide con la posición de entrada actual. No adelanta la posición de entrada.
(?<= ... ) Aserción de retrovisión. Verdadero si el patrón entre paréntesis coincide con el texto que precede a la posición de entrada actual. El último carácter de la coincidencia es el carácter de entrada justo antes de la posición actual. No altera la posición de entrada. La longitud de las posibles series que coinciden por patrón de retrovisión no deben estar limitadas (ni los operadores * o +.)
(?<!...) Aserción de retrovisión negativa. Verdadero si el patrón entre paréntesis no coincide con el texto que precede a la posición de entrada actual. El último carácter de la coincidencia es el carácter de entrada justo antes de la posición actual. No altera la posición de entrada. La longitud de las posibles series que coinciden por patrón de retrovisión no deben estar limitadas (ni los operadores * o +.)
(?ismwx-ismwx: ... ) Valores de distintivo. Evalúa la expresión entre paréntesis con los distintivos especificados habilitados o inhabilitados.
(?ismx-ismx) Valores de distintivo. Cambio de los valores de distintivo. Los cambios se aplican a la parte del patrón que sigue al valor. Por ejemplo, (?i) cambia a una coincidencia que no distingue entre mayúsculas y minúsculas.
Tabla 3. Expresiones de conjunto (clases de caracteres)
Expresión de ejemplo Descripción
[abc] Coincidencia de cualquiera de los caracteres a, b o c
[^abc] Negación - coincidencia de cualquier carácter excepto a, b o c
[A-M] Rango - coincidencia de cualquier carácter de A a M. Los caracteres a incluir los determina el orden de punto de código Unicode.
[\u0000-\U0010ffff] Rango - coincidencia de todos los caracteres.
[\p{Letter}] 
[\p{General_Category=Letter}] 
[\p{L}]
Caracteres con categoría Unicode = Letter. Todas las formas que se muestran son equivalentes.
[\P{Letter}] Propiedad negativa. (Mayúscula \P) Coincide todo excepto las letras.
[\p{numeric_value=9}] Coincidencia de todos los números con un valor numérico de 9. Se puede utilizar cualquier propiedad Unicode utilizada en expresiones de conjunto.
[\p{Letter}&&\p{script=cyrillic}] AND lógico o intersección. Coincidencia del conjunto de todas las letras cirílicas.
[\p{Letter}--\p{script=latin}] Resta. Coincidencia de todas las letras que no son latín.
[[a-z][A-Z][0-9]] [a-zA-Z0-9]] OR lógico implícito o unión de conjuntos. Los ejemplos coinciden con letras y dígitos ASCII. Las dos formas son equivalentes.
[:script=Greek:] Alterna sintaxis parecida a POSIX para las propiedades. Equivalente a \p{script=Greek}