Regex para validar teléfonos con separadores y extensiones
Clase 15 de 29 • Curso de Expresiones Regulares
Contenido del curso
El lenguaje: caracteres, operadores, y construcciones
- 5

El punto en regex: selecciona cualquier carácter
09:55 min - 6

\d \w \s: las 3 clases que localizan todo
13:55 min - 7

Cuantificadores regex: *, + y ? en acción
17:42 min - 8

Contadores en expresiones regulares
14:02 min - 9

Greedy vs lazy en regex: cuándo usar cada uno
07:47 min - 10

Negaciones con gorrito en expresiones regulares
06:49 min - 11

Cómo detectar números telefónicos sin letras
01:06 min - 12

Cómo procesar archivos CSV con millones de líneas
08:00 min
Uso práctico de Expresiones Regulares
- 13

Filtrar logs gigantes con expresiones regulares
07:22 min - 14

Expresiones regulares para URLs HTTP
08:07 min - 15

Regex para validar teléfonos con separadores y extensiones
Viendo ahora - 16

Validación de emails con regex
13:42 min - 17

Validación de coordenadas GPS con regex
17:16 min - 18

Validar nombres propios con regex
03:21 min
Usos avanzados en Expresiones Regulares
Expresiones Regulares en lenguajes de programación
- 20

Cómo extraer variables de URLs con regex
10:48 min - 21

Regex en múltiples lenguajes con CSV real
03:29 min - 22

Perl: CSV de fútbol en cero segundos
23:35 min - 23

Expresiones regulares en PHP: preg_match con CSV
09:29 min - 24

Extraer empates de archivos masivos con PHP
16:25 min - 25

Python regex para análisis de archivos CSV
21:58 min - 26

Lectura de archivos con BufferedReader en Java
07:59 min - 27

Escapar regex en Java: doble barra
08:48 min - 28

Validación de emails en JavaScript con regex
17:35 min - 29

Grep: filtra archivos masivos con regex
08:18 min
Los datos reales rara vez son limpios. Aquí aprenderás a diseñar expresiones regulares que validan números de teléfono con variantes reales: prefijo internacional, separadores, extensiones y pausas. Un enfoque práctico y planificado para evitar falsos positivos, limpiar la basura y ahorrar CPU.
¿Cómo validar teléfonos con expresiones regulares paso a paso?
Para teléfonos no controlamos el formato de entrada: pueden traer prefijo internacional, separadores variados o extensiones. A diferencia de los logs, donde la máquina escribe siempre igual, el usuario introduce datos con criterios propios. Por eso conviene pensar primero los casos y construir la regex de menos a más.
¿Qué formatos de teléfono se aceptan?
- Dígitos continuos: seis, o agrupaciones como tres-tres-tres para nueve dígitos.
- Prefijo internacional con símbolo de más escapado: puede estar al inicio o no.
- Separadores opcionales entre parejas o tríos: guion, punto, espacio o guion bajo.
- Extensiones y control de llamada: # (numeral), E (extensión) y P (pausa).
- Pausas encadenadas: P de un segundo, luego dígito, luego nueva pausa, etc.
- Variantes nacionales con o sin código de país.
¿Qué casos se descartan y por qué?
- Cadenas con letras incrustadas sin sentido en el número. La línea cuarenta y siete, que incluye “Y” y “R”, se descarta por no ser formato válido.
- Secuencias donde se exigen dígitos y no aparecen tras una E o P si así se definió.
- Formas que no cumplen inicio y fin de línea cuando se requiere match completo.
¿Qué estrategia usar para construir una regex robusta?
Construye leyendo y verificando en “lenguaje humano” lo que la regex dice. Eso reduce errores y hace sostenible el patrón.
¿Cómo construir de lo simple a lo complejo?
- Lista ejemplos válidos y algunos explícitamente no válidos. Úsalos como pruebas.
- Empieza por lo esencial: “quiero dígitos”. Luego “uno o más dígitos”.
- Añade finales opcionales: numeral, P o E. Verifica cada incremento.
- Decide el esquema: parejas de dos, tríos de tres, o seis/nueve dígitos fijos.
- Introduce separadores opcionales entre bloques (guion, punto, espacio, guion bajo).
¿Qué cuantificadores y anclajes aplicar?
- Interrogación (?) para “cero o uno” del símbolo de más y de secciones opcionales.
- Asterisco (*) cuando puede “haber o no haber” dígitos tras P/E.
- Más (+) para “uno o más” dígitos donde no se aceptan vacíos.
- Inicio y final de línea (anclajes) para exigir match de línea completa.
¿Cómo manejar caracteres especiales y separadores?
- Escapa el símbolo de más al inicio para el código internacional.
- Usa clases de caracteres para agrupar opciones: por ejemplo, [#pe] para numeral, p o e.
- Evita que ciertos bloques terminen en separador: los separadores son para “entre dígitos”, no al final.
- Cuando los separadores son opcionales, la regex debe tolerar con o sin ellos.
¿Qué habilidades y conceptos clave refuerzas?
El objetivo no es memorizar patrones, sino planear y razonar sobre datos ambiguos. Con eso obtienes una regex clara, mantenible y efectiva.
- Planeación de casos: pensar “qué puede pasar” antes de codificar.
- Lectura natural de la regex: validar que cada parte tiene sentido humano.
- Clases de caracteres: definir conjuntos como dígitos, letras y separadores.
- Cuantificadores (?, *, +): controlar opcionalidad y cantidad mínima.
- Agrupación en parejas o tríos: dos-dos-dos o tres-tres-tres según el contexto.
- Anclajes de línea: exigir match completo para evitar falsos positivos.
- Escape de caracteres especiales: tratar correctamente el símbolo de más en prefijos.
- Validación de extensiones: aceptar E y # como extensión cuando aplique.
- Control de pausas: permitir P para automatizar interacción con conmutadores.
- Limpieza de datos: usar la regex para separar basura de información útil.
- Rendimiento: filtrar temprano ahorra tiempo humano y de CPU.
- Iteración rápida: construir “bloque por bloque” y probar de inmediato.
¿Te gustaría compartir un caso de formato telefónico que te haya dado dolores de cabeza? Compártelo y lo integramos a un patrón robusto entre todos.