Skip to content
DocsAll
技巧

Expresiones regulares en la práctica: casos comunes de procesamiento de texto

Timi Tian · Publicado el 24 de marzo de 2026 · Actualizado el 12 de julio de 2026
expresiones regularesRegexprocesamiento de texto

Tres áreas prácticas de las expresiones regulares

Las expresiones regulares se usan en tres tipos de operaciones:

  • Validación: juzgar si el texto cumple con el formato (ej. correo, teléfono)
  • Extracción: encontrar contenido que coincida con el patrón en el texto (ej. todas las URLs, todos los importes)
  • Sustitución: reemplazar las partes que coinciden con el patrón por otra cosa (ej. unificar formato de fecha, enmascarar teléfono)

A continuación se demuestra con casos prácticos.

Casos de validación

Validar número de teléfono

Regex: ^1[3-9]\d{9}$

Puntos clave: usar ^ y $ para anclar el inicio y el final, asegurando que toda la cadena sea un número de teléfono y no un texto más largo que lo contiene. Limitar el segundo dígito a 3-9 es la regla actual de asignación.

Validar correo electrónico

Regex: ^[\w.-]+@[\w.-]+.\w+$

Puntos clave: la versión simplificada es suficiente, una regex estricta de correo es muy compleja. En proyectos reales, usa la versión simplificada + envío de correo de verificación para doble garantía.

Validar documento de identidad

Regex: ^\d{17}[\dXx]$

Puntos clave: 18 dígitos, los primeros 17 son números, el último es número o X. Esto solo valida el formato, no el dígito de control.

Validar URL

Regex: ^https?://[\w.-]+

Puntos clave: empieza con http o https, seguido del dominio. Versión simplificada, una regex completa de URL es extremadamente compleja.

Casos de extracción

Extraer todos los números de teléfono

Regex: 1[3-9]\d{9}

Sin ^ ni $, encuentra todos los números de teléfono en el texto. Usa coincidencia global (flag g).

Extraer todas las URLs

Regex: https?://[\w./?=&%-]+

Coincide con URLs que empiezan por http(s). Los caracteres reales de URL son más complejos, ajusta el conjunto de caracteres según sea necesario.

Extraer todos los importes

Regex: [¥$]\d+(?:.\d+)?

Coincide con importes que empiezan por ¥ o $, con decimales opcionales. Ej: ¥100, $99.9.

Extraer contenido de etiquetas HTML

Regex: <a[^>]*>([^<]+)

Extrae el texto dentro de la etiqueta a. El grupo entre paréntesis captura el contenido textual. Ten en cuenta que procesar HTML con regex no es robusto; para HTML complejo es más estable usar un parser.

Casos de sustitución

Enmascarar número de teléfono

Reemplazar los 4 dígitos centrales por asteriscos: cambiar 1[3-9]\d{9} manteniendo los primeros 3 y los últimos 4.

En la práctica se usan grupos de captura: regex (1[3-9]\d)\d{4}(\d{4}), sustituir por 1\1****\2. \1 y \2 referencian los grupos.

Unificar formato de fecha

Convertir 2026/07/12 a 2026-07-12: regex (\d{4})/(\d{2})/(\d{2}), sustituir por \1-\2-\3.

Eliminar espacios redundantes

Convertir múltiples espacios consecutivos en uno solo: regex \s+, sustituir por un solo espacio.

Eliminar etiquetas HTML

Quitar todas las etiquetas HTML dejando solo el texto: regex <[^>]+>, sustituir por vacío. Ten en cuenta que se pierden los > dentro de atributos de etiqueta; en situaciones complejas usa un parser.

Consejos de depuración

Verificación paso a paso con herramienta de prueba

Usa la herramienta de prueba de regex:

  1. Introduce la regex
  2. Introduce el texto de prueba (con ejemplos que deben y no deben coincidir)
  3. Revisa los resultados de coincidencia resaltados
  4. Ajusta la regex gradualmente hasta que el resultado sea correcto

Primero coincidir, luego optimizar

Primero escribe una regex que coincida, luego considera la optimización (rendimiento, precisión). No busques la perfección desde el principio.

Usar visualización de regex online

Para regex complejas, usa herramientas de visualización para descomponer la estructura y comprender el significado de cada parte.

Prestar atención a casos límite

  • Cadena vacía
  • Cadenas con coincidencia parcial
  • Cadenas con caracteres especiales
  • Cadenas muy largas

Patrones de regex reutilizables

Chino

[\u4e00-\u9fa5]+

Código postal

^\d{6}$

Número QQ

^[1-9]\d{4,10}$

Color hexadecimal

^#[0-9a-fA-F]{6}$

Número de versión

^\d+.\d+.\d+$

Errores comunes

Coincidencia codiciosa

.* coincide con demasiado. Para extraer contenido de etiquetas usa [^<]+ en lugar de .* para evitar coincidencias entre etiquetas.

Caracteres especiales sin escapar

Para coincidir con metacaracteres como punto, asterisco o interrogación, hay que escaparlos. Para coincidir con una barra invertida en sí, escribe \.

Coincidencia multilínea

Por defecto . no coincide con saltos de línea. Para procesar texto multilínea, activa el modo de una sola línea o usa [\s\S] para coincidir con cualquier carácter.

Problemas de rendimiento

catastrophic backtracking (retroceso catastrófico): cuantificadores anidados como (a+)+ pueden ser extremadamente lentos con ciertas entradas. Presta atención al rendimiento con regex complejas; para textos muy largos, trunca antes de coincidir.

Resumen

La práctica de regex se divide en validación, extracción y sustitución. La validación usa anclas ^ $, la extracción usa coincidencia global, la sustitución usa referencias a grupos de captura. Al escribir regex, primero prueba y verifica con una herramienta, luego optimiza. Recuerda algunos patrones habituales (teléfono, correo, fecha, URL) y serán suficientes para el día a día. La herramienta de prueba de regex de DocsAll se ejecuta en el navegador, permite probar mientras escribes y no sube el texto.

T
Timi Tian 创始人 / 全栈工程师

DocsAll 创始人,10 年全栈开发经验,专注浏览器端文档处理技术与隐私保护架构。前新加坡科技公司技术负责人。