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.