Resumen completo de expresiones regulares

Resumen

Referencia práctica y segura de expresiones regulares portables.
Se evita el uso de banderas de modo ((?s), (?m), (?i)), ofreciendo patrones concretos resistentes a variaciones entre sistemas operativos o herramientas.


Saltos de línea y diferencias entre entornos

Sistema Código de salto Patrón recomendado Nota
Windows \r\n \r?\n Compatible con CRLF y LF
macOS / Linux \n \r?\n Funciona en ambos entornos

Punto clave:

  • Para detección o reemplazo de saltos de línea, usa \r?\n.
  • Para coincidencias multilínea, usa (?:.|\r|\n), ya que . no captura saltos de línea.

Parte 1: Sintaxis básica (por categoría)

1-1. Clases y rangos de caracteres

Patrón Significado Ejemplo Coincidencia
. Cualquier carácter excepto salto de línea a.c / abc abc
[abc] Uno de a, b o c bag a
[^0-9] No numérico a1 a
[A-Z0-9] Mayúscula o número X8z X,8

1-2. Cuantificadores

Patrón Significado Ejemplo Coincidencia
* 0 o más veces goooogle goooo
+ 1 o más veces google oo
? 0 o 1 vez color colour ambas
{n} Exactamente n veces a{3} / aaa aaa
{n,} Al menos n veces a{2,} / aaaa aaaa
{n,m} Entre n y m veces a{2,4} / aaaaa aaaa

1-3. Anclas (inicio/fin)

Patrón Significado Ejemplo Coincidencia
^abc “abc” al inicio de línea abc\nzabc primera línea
abc$ “abc” al final de línea zabc\nabc ambas líneas
\bword\b Palabra exacta word words word
\Bing “ing” no al límite de palabra ringing segunda “ing”

1-4. Caracteres especiales abreviados

Patrón Significado Ejemplo Coincidencia
\d Dígitos [0-9] ver2.10 2,10
\D No dígitos a1 a
\w Alfanumérico o guion bajo a_b-1 a_b
\W No alfanumérico a# #
\s Espacio, tab o salto a b espacio
\S No espacio a b a,b
\t Tabulador a\tb a[TAB]b

1-5. Caracteres de escape

Patrón Significado Ejemplo Coincidencia
\. Punto literal a.c a.c
\* Asterisco literal a*b a*b
\+ Más literal a+b a+b
\? Interrogación literal what? what?
\( \) Paréntesis literal (test) (test)
| Barra vertical literal `a b`
\\ Barra invertida C:\\path \\
\^ Circunflejo ^abc ^abc
\$ Signo de dólar total$ $
\[ \] Corchetes literales [abc] [abc]
\{ \} Llaves literales {a,b} {a,b}

Parte 2: Agrupaciones, alternativas y lookahead/lookbehind

Patrón Uso Ejemplo Coincidencia
(abc)+ Repetición de grupo abcabcx abcabc
`(?:jpg png)` OR sin captura file.png
`foo bar` Alternativa bar
\d+(?=€) Dígitos antes de “€” Total 100€ 100
^(?!.*error).* Línea sin “error” ok\nerror ok
(?<=€)\d+ Dígitos después de “€” €300 300
(?<!Mr\.)\s[A-Z] Mayúscula no tras “Mr.” Ms. Alice A

Parte 3: Coincidencias multilínea

Uso Patrón Ejemplo Coincidencia
Bloque HTML `<div>(?:. \r \n)*?</div>`
Registro de log `^[\d{4}-\d{2}-\d{2} [\d:]+](?:. \r \n)*?(?=^[\d{4}-\d{2}-\d{2}
Bloque Markdown “ “`(?:. \r \n)*?“` “
Comentarios // `/*(?:. \r \n)*?*/`

Parte 4: Patrones comunes (filtrado/negación)

Uso Patrón Ejemplo Coincidencia
Solo números ^\d+$ 123 123
Solo alfanumérico ^[A-Za-z0-9]+$ user01 user01
Email (simple) ^[\w.-]+@[\w.-]+\.[A-Za-z]{2,}$ a@b.com a@b.com
URL https?://[\w.-]+\.[A-Za-z]{2,}(/[\w./?=&%-]*)? https://ex.com/a https://ex.com/a
Fecha ISO \d{4}-\d{2}-\d{2} 2025-10-30 2025-10-30
Teléfono internacional \+\d{1,3}[\s-]?\d{1,14} +81 90 1234 5678 completo
Contraseña fuerte ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$ Abcd1234 completo
Comentario HTML `<!–(?:. \r \n)*?–>`
Línea sin “error” ^(?!.*error).* ok\nerror ok

Parte 5: Ejemplos de reemplazo

Tarea Patrón Reemplazo Ejemplo Resultado
Invertir palabras (\w+)\s+(\w+) ${2} ${1} John Doe Doe John
Cambiar separador ; , a;b;c a,b,c
Unificar espacios \s{2,} a b a b
Eliminar etiquetas HTML <[^>]+> <p>a</p> a
Trim (quitar espacios extremos) `^\s+ \s+$` a
Saltos → espacio \r?\n a\nb a b
Quitar comentarios // //.*$ x=1;//note x=1;
Normalizar fecha (\d{4})/(\d{2})/(\d{2}) ${1}-${2}-${3} 2025/10/30 2025-10-30
Comprimir líneas duplicadas ^(.*)(\r?\n\1)+$ ${1} líneas iguales una sola línea

Conclusión

Las expresiones regulares son universales y potentes.
Permiten automatizar tareas de análisis de logs, limpieza de datos o transformación de texto en cualquier lenguaje o sistema.