Skip to content

Hoja de referencia de expresiones regulares

Coincidencia de caracteres

[abc] Coincide con cualquiera de los caracteres a, b o c
[^abc] No coincide con los caracteres a, b o c. El “^” solo es efectivo si aparece como el primer carácter
[a-g] Coincide con cualquier carácter en el rango a-g
[^a-g] No coincide con ningún carácter en el rango a-g
[H-N] Coincide con cualquier carácter en el rango H-N
[0-9] Coincide con cualquier dígito en el rango 0-9
[a-gH-N] Coincide con cualquier carácter en los rangos a-g o H-N
Comodines (Wildcards):
. [^\n\r], coincide con cualquier carácter excepto el salto de línea
\s Espacio en blanco: salto de línea, tabulación, espacio, etc.
\S [^\s] (Cualquier cosa excepto un espacio en blanco)
\d Dígito: [0-9]
\D [^\d] (Cualquier cosa excepto un dígito)
\w Carácter de palabra: [0-9A-Za-z_]
\W [^\w] (Cualquier cosa excepto un carácter de palabra)

Grupos de coincidencia

(a b)
(…) Grupo de captura
(?:…) Grupo de no captura
(?<name>…) o (?’name’…) Grupo de captura nombrado, “name” se puede personalizar
(?(condition)true_regex false_regex)

group(0) se utiliza para obtener la cadena completa coincidente, mientras que group(>0) puede extraer subgrupos de captura del resultado global.

Nota: Los grupos de captura nombrados solo se admiten a partir de Java 1.7 (pasando la cadena “name” como argumento al método group). JS y Python no admiten grupos de captura nombrados de forma nativa por el momento.

Rangos de frecuencia (Cuantificadores)

{3} El elemento anterior aparece exactamente 3 veces, equivalente a {3,3}
{3,6} El elemento anterior aparece de 3 a 6 veces
{3,} El elemento anterior aparece al menos 3 veces
{0,6} El elemento anterior aparece como máximo 6 veces
Comodines:
* {0,} (Cero o más)
+ {1,} (Uno o más)
? {0,1} (Cero o uno)
\w* Modo codicioso (Greedy)
\w*? Modo no codicioso

Anclas (Posicionadores)

^ Inicio de cadena
$ Fin de cadena
\b Límite de palabra (Boundary)
\B No es un límite de palabra
Aseveraciones de posición (Lookaround):
(?=exp) Aseveración positiva hacia adelante (sufijo exp)
(?<=exp) Aseveración positiva hacia atrás (prefijo exp)
(?!exp) Aseveración negativa hacia adelante (no hay sufijo exp)
(?<!exp) Aseveración negativa hacia atrás (no hay prefijo exp)

\b(\w+)\b es equivalente a (?<=\W?)(\w+)(?=\W?)