🧩
← Volver a guías

Regex para principiantes: cómo escribir expresiones regulares

· Etiquetas: regex-beginners, regular-expression-guide, regex-tutorial, regex-patterns, learn-regex

Regex para principiantes

Las expresiones regulares — regex — son patrones que describen texto. Con regex puedes buscar cadenas, validar entradas, extraer datos y realizar búsquedas y reemplazos complejos con una única expresión compacta. Una vez que comprendes los fundamentos, regex se convierte en una de las herramientas más potentes de tu kit de programación.

¿Qué es una expresión regular?

Un regex es una secuencia de caracteres que define un patrón de búsqueda. El patrón \d{3}-\d{2}-\d{4} coincide con un número de la Seguridad Social de EE. UU.: tres dígitos, guion, dos dígitos, guion, cuatro dígitos.

Existen motores de regex en prácticamente todos los lenguajes de programación — JavaScript, Python, Java, Ruby, Go — todos con soporte integrado.

Caracteres literales

La mayoría de los caracteres coinciden consigo mismos. El patrón cat coincide con la cadena literal "cat" dondequiera que aparezca.

Pattern: cat
Matches: "cat" in "The cat sat on the mat."
Matches: "cat" in "catalog"

La coincidencia literal es sencilla pero limitada. El verdadero poder proviene de los metacaracteres.

Metacaracteres

Estos caracteres tienen un significado especial y deben escaparse con \ para coincidir literalmente:

. ^ $ * + ? { } [ ] \ | ( )

Clases de caracteres

Las clases de caracteres coinciden con un carácter de un conjunto.

Notación de corchetes

| Patrón | Coincidencias | |---------|---------| | [aeiou] | Cualquier vocal | | [0-9] | Cualquier dígito | | [a-zA-Z] | Cualquier letra | | [^0-9] | Cualquier carácter que NO sea un dígito |

Clases predefinidas

| Abreviatura | Descripción | |-----------|-------------| | \d | Cualquier dígito (igual que [0-9]) | | \w | Letra, dígito o guion bajo | | \s | Espacio, tabulación o salto de línea | | \D | Cualquier carácter que no sea un dígito | | \W | Cualquier carácter que no sea alfanumérico ni guion bajo | | \S | Cualquier carácter que no sea un espacio en blanco | | . | Cualquier carácter excepto el salto de línea |

Cuantificadores

Los cuantificadores controlan cuántas veces debe aparecer el elemento precedente.

| Cuantificador | Significado | Ejemplo | Coincidencias | |------------|---------|---------|---------| | * | Cero o más | a* | "", "a", "aa" | | + | Uno o más | a+ | "a", "aa", "aaa" | | ? | Cero o uno | colou?r | "color", "colour" | | {3} | Exactamente N | \d{3} | "123" | | {2,4} | Entre N y M | \d{2,4} | "12", "123", "1234" |

Ejemplos

\d+     → "42" in "Answer is 42"
https?://  → "http://" and "https://"

Anclas

Las anclas coinciden con posiciones, no con caracteres.

| Ancla | Significado | |--------|---------| | ^ | Inicio de la cadena | | $ | Fin de la cadena | | \b | Límite de palabra | | \B | Límite que no es de palabra |

^hello   → matches "hello" only at the start
end$     → matches "end" only at the end
\bword\b → matches "word" as a whole word, not inside "sword"

Grupos y alternancia

Los grupos de captura ( ) extraen las porciones coincidentes:

(\d{3})-(\d{4}) → "555-1234", captures "555" in group 1, "1234" in group 2

Los grupos no capturantes (?: ) agrupan sin extraer:

(?:https?|ftp):// → "http://", "https://", "ftp://"

La alternancia | actúa como un OR:

cat|dog|bird → matches "cat", "dog", or "bird"

Ejemplos prácticos de regex

| Caso de uso | Patrón | |----------|---------| | Teléfono de EE. UU. | \d{3}-\d{3}-\d{4} | | Correo electrónico (simple) | \S+@\S+\.\S+ | | Dirección IP | \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} | | Hashtag | #[a-zA-Z]\w* | | Hora (HH:MM) | [01]\d|2[0-3]:[0-5]\d |

Cómo probar un patrón de regex

Siempre prueba los patrones de forma interactiva:

  1. Introduce tu patrón de regex.
  2. Introduce una cadena de prueba.
  3. Observa qué porciones coinciden en tiempo real.
  4. Ajusta y repite.

Usa la herramienta de prueba de regex para experimentar con patrones. Resalta las coincidencias, muestra los grupos de captura y te ayuda a entender exactamente qué hace cada parte de tu expresión.

Regex para principiantes: cómo escribir expresiones regulares - CoolTool