Curso de Expresiones Regulares

Contadores en expresiones regulares

Curso de Expresiones Regulares

Contenido del curso

Expresiones Regulares en lenguajes de programación

Contadores en expresiones regulares

Resumen

Domina los contadores en expresiones regulares para pasar de búsquedas generales a coincidencias precisas. Aquí verás cómo controlar repeticiones exactas con {m,n}, construir clases de separadores y validar formatos como teléfonos, manteniendo el patrón claro, flexible y escalable.

¿Cómo usar contadores {m,n} para controlar repeticiones?

Los contadores permiten especificar cuántas veces debe repetirse un patrón. La forma {m,n} define cota inferior y cota superior: mínimo m y máximo n. También puedes fijar un único valor repitiéndolo: {2,2} significa exactamente dos.

  • Exacto con dígitos: dos dígitos seguidos.
\d\d
  • Exacto con llaves: igual que arriba, pero explícito con contadores.
\d{2,2}
  • Rango mínimo a máximo: de dos a cinco dígitos.
\d{2,5}
  • Rango abierto superior: cuatro o más dígitos.
\d{4,}

El motor busca el match más grande dentro del rango permitido, por eso con {2,10} agrupa lo máximo posible antes de romper por un carácter no válido. Algunos lenguajes aceptan {2} como exacto; otros exigen {2,2}. Mantener {m,n} en ambos casos es seguro y claro.

¿Qué papel juegan \d, \w y las clases en la precisión?

Los atajos y las clases de caracteres brindan legibilidad y control. \d representa dígitos y \w representa caracteres de palabra (letras, números y guion bajo). Con contadores, impones longitud mínima y máxima.

  • Usuario de 4 a 10 caracteres de palabra.
\w{4,10}
  • Letras seguidas de longitud variable usando rango abierto.
\w{4,}

Para combinar separadores o símbolos, crea una clase de caracteres con corchetes. Recuerda que algunos símbolos son reservados y deben escaparse, como guion y punto.

  • Clase de separadores con guion, punto y espacio.
[\-\. ]
  • Separador opcional con símbolo de interrogación.
[\-\. ]?

El símbolo de interrogación ? indica “cero o una vez”. Su equivalente con contador es {0,1}, útil cuando prefieres explicitar la cuenta tras una clase o patrón.

¿Cómo funciona ? frente a {0,1}?

Ambos logran que un elemento sea opcional. Usa ? para brevedad sobre un carácter o clase, o {0,1} para reforzar la idea de conteo explícito sin cambiar el match.

¿Cómo validar teléfonos con separadores opcionales y caracteres reservados?

Se pueden capturar números en bloques de dos dígitos, repitiéndolos y permitiendo separadores opcionales. Así cubres entradas con guiones, puntos, espacios o sin separadores.

  • Dos dígitos con separador opcional, repetido tres veces (ejemplo didáctico para 6 dígitos):
\d{2}[\-\. ]?\d{2}[\-\. ]?\d{2}
  • Para 10 dígitos en parejas de dos, repite el patrón cinco veces. Cada bloque acepta “guion, punto o espacio” como separador, o ninguno si no aparece.

Puntos clave del patrón de teléfonos:

  • Escape de reservados: guion y punto se escriben como - y . en clases.
  • Separadores opcionales: añade ? tras la clase [-. ].
  • Entrada flexible: admite “123456”, “12-34-56”, “12.34.56” o “12 34 56”.
  • Búsqueda progresiva: el match toma la secuencia más larga válida sin incluir caracteres ajenos, como letras.

Si el dato trae formato, puedes removerlo en el lenguaje que uses (JavaScript, etc.) y validar con un patrón exclusivo de dígitos, por ejemplo exactamente 10:

\d{10,10}

¿Cómo ampliar o ajustar reglas sin romper el patrón?

  • Agrega nuevos separadores dentro de la misma clase.
  • Modifica la longitud cambiando los contadores {m,n}.
  • Sustituye ? por {0,1} si prefieres conteo explícito.

Con estas piezas, ya controlas: repeticiones exactas, rangos, rangos abiertos, clases personalizadas, escape de símbolos y opcionalidad. En la continuación se explora el uso de ? en modo lazy para controlar la avidez del match.

¿Te gustaría ver más ejemplos con otros formatos o validar entradas reales de usuarios? Cuéntame qué patrón necesitas y lo armamos juntos.