Prueba tu expresión regular en vivo: resaltado de coincidencias, grupos de captura, vista previa de buscar y reemplazar, explicación del patrón paso a paso y generador de código para cuatro lenguajes — además de plantillas listas para números de teléfono, emails, códigos postales y mucho más.
🔒 100% en tu navegador12 plantillas listasGrupos + grupos con nombreActualizado: 26 jul. 2026
No pasa nada si rodeas tu patrón con /…/ — las barras se eliminan automáticamente. Solo se requiere el patrón en sí.
Las coincidencias se resaltan en vivo (violeta/rosa). Si el patrón no es válido, aparece un cuadro de error encima.
#
Coincidencia
Posición
Grupos
Copia cada coincidencia — o un solo grupo de captura — como texto plano: una por línea, separada por comas, o con un separador personalizado. Descarga el resultado completo, incluidas las posiciones y los grupos, en formato CSV. Ideal para extraer todos los emails, números de teléfono o fechas de un bloque de texto.
Referencia los grupos de captura con $1, $2… o los grupos con nombre con $<nombre>. Si la bandera «g» está desactivada, solo se reemplaza la primera coincidencia.
Descomposición de tu patrón pieza por pieza
Elemento
Significado
Para una referencia general de cada símbolo, consulta la sección Tablas de referencia más abajo.
Valida tu patrón con ejemplos reales: cada línea es una prueba. Las líneas bajo «Debe coincidir» deben coincidir con el patrón; las líneas bajo «NO debe coincidir» no deben coincidir con él. Ideal para reforzar un patrón de validación (como un número de teléfono o un email) frente a varios ejemplos a la vez. Consejo: usa los anclajes ^ y $ en tu patrón para una validación de línea completa.
Solo el patrón y las banderas se añaden al enlace compartible; tu texto de prueba (que puede contener datos personales) nunca se incluye.
Respuesta rápida
Un probador de regex ejecuta el patrón que escribes sobre el texto que proporcionas y resalta al instante lo que coincide. Esta herramienta resalta las coincidencias en vivo, lista los grupos de captura y los grupos con nombre, previsualiza la búsqueda-reemplazo, explica el patrón pieza por pieza y genera código equivalente para JavaScript, Python, PHP y Java — todo en tu navegador, sin enviar nada a un servidor.
12Plantillas listas
5Banderas (g,i,m,s,u)
4Lenguajes de código
100%Del lado del cliente
⚙️ Nota sobre precisión y motor: esta herramienta usa el motor regex ECMAScript (JavaScript) integrado en el navegador. PCRE (PHP), el módulo re de Python y el motor regex de Java comparten la mayor parte de la sintaxis, pero pueden diferir ligeramente en funciones avanzadas (como los grupos atómicos o los cuantificadores posesivos) — prueba por separado el código generado en la pestaña «Generar código» en tu lenguaje de destino. Las plantillas de tarjeta bancaria e IBAN solo comprueban el formato; no validan sumas de verificación.
Una guía completa — sintaxis, grupos de captura, buscar y reemplazar, y banderas — explicada y presentada de forma citable.
Una expresión regular (regex, para abreviar) es una sintaxis especial que se usa para describir un patrón dentro de un texto. Por ejemplo, \d{4} significa «cuatro dígitos seguidos», y [A-Z][a-z]+ significa «una palabra que empieza con mayúscula». El regex se usa para la validación de formularios (números de teléfono, direcciones de email, formatos de tarjeta bancaria), el análisis de archivos de registro, la búsqueda-reemplazo y la extracción de datos — y casi todos los lenguajes de programación, incluidos JavaScript, Python, PHP y Java, admiten una sintaxis muy similar.
¿Por qué es importante probar un patrón regex?
Respuesta rápidaLa sintaxis regex es densa y fácil de escribir mal — olvidar escapar un carácter (usar . en lugar de \., por ejemplo) puede provocar coincidencias inesperadas. Probar tu patrón en vivo con datos de ejemplo reales, y confirmar visualmente qué partes coinciden realmente, es la forma más fiable de detectar errores antes de que un patrón defectuoso llegue a producción.
¿Qué es un grupo de captura?
Respuesta rápidaUna sección entre paréntesis, como (abc), forma un «grupo de captura» y hace que esa parte de la coincidencia esté disponible por separado. (?:abc) es un grupo sin captura — agrupa sin ser numerado. (?<nombre>abc) asigna un nombre a un grupo (un grupo con nombre); el resultado entonces se puede acceder por número o por nombre.
Grupo numerado — (\d{2})-(\d{2}): en «12-34», el grupo 1 = «12», el grupo 2 = «34».
Grupo con nombre — (?<anio>\d{4}): accesible en el resultado mediante groups.anio.
Grupo sin captura — (?:abc)+: agrupa la repetición de «abc» sin numerarlo.
¿Cómo funciona la búsqueda y reemplazo?
Respuesta rápidaEn una operación de buscar-reemplazar, las partes que coinciden con el regex se sustituyen por otra cadena; los grupos de captura se referencian con $1, $2… o, para grupos con nombre, con $<nombre>. Por ejemplo, aplicando (\d{4})-(\d{2})-(\d{2}) con el reemplazo $2/$3/$1, «2026-07-26» se convierte en «07/26/2026». Si la bandera «g» no está activada, solo se reemplaza la primera coincidencia — pruébalo en vivo en la pestaña «Reemplazar» de arriba.
¿Para qué sirven las banderas regex?
Respuesta rápidag encuentra cada coincidencia (sin ella, solo la primera); i desactiva la sensibilidad a mayúsculas y minúsculas; m hace que los anclajes ^/$ coincidan con el principio/final de cada línea, y no solo de la cadena completa; s (dotall) permite que . también coincida con saltos de línea; y u interpreta el patrón según los puntos de código Unicode. Las banderas se añaden como una opción aparte, no se integran en el patrón en sí.
Símbolos regex comunes (resumen rápido)
Referencia rápida — consulta la sección Referencia completa más abajo para verlo todo
Símbolo
Significado
Ejemplo
\d
Dígito (0-9)
\d{4} → «2026»
\w
Carácter de palabra (letra/dígito/_)
\w+ → «hello_123»
\s
Espacio en blanco (espacio/tabulación/salto de línea)
\s+ → « » (espacio)
^ $
Principio y final de texto/línea
^abc$ → exactamente «abc»
* + ? {n,m}
Cuantificadores (repetición)
a{2,4} → «aa».. «aaaa»
(...) (?:...) (?<nombre>...)
Grupo de captura / sin captura / con nombre
(\d+)-(\d+)
Tablas de referencia regex y chuleta
Clases de caracteres, cuantificadores, grupos y banderas, y formatos comunes listos para usar — una referencia completa y citable.
Clases de caracteres y atajos
Símbolo
Significado
.
Cualquier carácter excepto salto de línea (con la bandera «s», incluido el salto de línea)
\d / \D
Carácter dígito / no-dígito
\w / \W
Carácter de palabra (letra/dígito/_) / carácter no-palabra
\s / \S
Carácter de espacio en blanco / carácter que no es espacio en blanco
[abc]
Uno de entre a, b o c
[^abc]
Cualquier carácter EXCEPTO a, b, c
[a-z0-9]
Letra minúscula a-z O dígito 0-9
\b / \B
Límite de palabra / posición fuera de límite de palabra
Cuantificadores (repetición)
Símbolo
Significado
*
0 repeticiones o más (codicioso)
+
1 repetición o más (codicioso)
?
0 o 1 repetición (opcional)
{n}
Exactamente n repeticiones
{n,}
Al menos n repeticiones
{n,m}
Entre n y m repeticiones
*? +? ?? {n,m}?
Versión perezosa — intenta hacer coincidir el MENOR número de repeticiones posible
El modo codicioso es el comportamiento por defecto: intenta hacer coincidir la cadena más larga posible. Añadir ? al final lo vuelve perezoso (entonces intenta la coincidencia más corta).
Grupos, lookarounds y banderas
Símbolo
Significado
(abc)
Grupo de captura
(?:abc)
Grupo sin captura
(?<nombre>abc)
Grupo de captura con nombre
(?=abc)
Lookahead positivo
(?!abc)
Lookahead negativo
(?<=abc)
Lookbehind positivo
(?<!abc)
Lookbehind negativo
a|b
a O b (alternancia)
g i m s u
Banderas: global, insensible a mayúsculas, multilínea, dotall, unicode
Patrones de formatos comunes listos para usar (solo verificación de formato)
Estos patrones solo comprueban el formato (longitud y conjunto de caracteres) — no validan sumas de verificación (por ejemplo, el algoritmo de Luhn para números de tarjeta) ni confirman que un número esté realmente emitido o activo.
Diferencias de sintaxis entre motores regex — JavaScript (ECMAScript, el motor de esta herramienta), PCRE (PHP), Python (módulo re) y Java
Función
JavaScript
PCRE (PHP)
Python (re)
Java
Grupo con nombre
(?<n>..)
(?<n>..) o (?P<n>..)
(?P<n>..)
(?<n>..)
Referencia inversa con nombre
\k<n>
\k<n> o (?P=n)
(?P=n)
\k<n>
Lookbehind (longitud variable)
Admitido (motores modernos)
Solo longitud fija*
Solo longitud fija
Admitido
Cuantificador posesivo
No admitido
a++ a*+
No admitido (re); sí en el módulo regex
a++ a*+
Grupo atómico
No admitido
(?>..)
(?>..) desde Python 3.11
(?>..)
Bandera dotall («. captura todo»)
s
s
re.DOTALL / (?s)
Pattern.DOTALL / (?s)
Bandera Unicode
u
u
Por defecto en Python 3 (str)
UNICODE_CASE / (?U)
Clases Unicode con nombre
\p{L} (con bandera u)
\p{L}
\p{L} solo en el módulo regex
\p{L}
*Algunas versiones recientes de PCRE (PHP 7.3+) también admiten el lookbehind de longitud variable en ciertos casos. Esta tabla resume las diferencias más comunes entre motores — para tu patrón exacto, siempre prueba el código generado en la pestaña «Generar código» en el lenguaje de destino, ya que las diferencias avanzadas de sintaxis no se traducen automáticamente.
Ejemplos de patrones
Una pequeña galería de patrones regex habituales — haz clic en cualquiera para cargarlo directamente en el probador de arriba.
Añade este probador de regex a tu sitio (código de inserción)
Integra gratis el probador de regex en tu propio sitio. Copia el código de abajo en tu HTML — la herramienta se muestra en una vista simplificada y enlaza a esta página como fuente.
La herramienta insertada tiene un diseño fijo; ajusta el valor de height según tu sitio. Sin publicidad ni datos personales — todo funciona del lado del cliente.
Glosario de términos regex
Definiciones breves de los conceptos esenciales de las expresiones regulares.
PatrónEl propio texto regex que define qué se debe hacer coincidir.
BanderaUna letra adicional que modifica el comportamiento del patrón: g, i, m, s, u, por ejemplo.
Grupo de capturaUna parte del patrón entre paréntesis (...) cuyo texto coincidente se vuelve accesible por separado.
Grupo con nombreUn grupo de captura al que se le da un nombre con (?<nombre>...); accesible por ese nombre en el resultado.
Codicioso / PerezosoUn cuantificador codicioso intenta hacer coincidir lo máximo posible; uno perezoso (con un ? final) intenta hacer coincidir lo mínimo posible.
Referencia inversaReferencia a un grupo de captura anterior dentro del patrón, mediante \1, \2, etc.
Anclaje^ y $ — marcan el principio y el final del texto/línea sin consumir caracteres.
Lookahead / LookbehindComprueba que un patrón existe antes o después de una posición, sin incluirlo en la coincidencia.
MetacaracterUn carácter con un significado especial en regex: . * + ? ^ $ ( ) [ ] { } | \.
EscapeColocar una \ antes de un metacaracter para hacer que coincida literalmente, p. ej. \..
Reemplazo / SustituciónSustituir el texto coincidente por otra cadena, referenciando los grupos con $1, etc.
Coincidencia global (g)Encontrar cada coincidencia en el texto, no solo la primera.
Guías detalladas
Respuestas detalladas a las preguntas de regex más frecuentes.
¿Cómo se valida el formato de un número de tarjeta bancaria con un regex, y por qué no basta con eso?
El patrón ^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$ comprueba el formato de un número de tarjeta: cuatro grupos de cuatro dígitos, con un espacio o guion opcional entre ellos. Pero un número de tarjeta realmente válido también debe pasar el algoritmo de Luhn — un cálculo de suma de verificación que se realiza duplicando uno de cada dos dígitos (empezando por la derecha), sumando los dígitos de los resultados, y comprobando que el total es divisible entre 10. Este cálculo es aritmético, no reconocimiento de patrones, así que un regex por sí solo no puede realizarlo.
Por eso la validación de formularios en producción suele usar un enfoque de dos pasos: primero un filtro regex rápido para el formato, y después una verificación de Luhn (o la propia validación de un proveedor de pagos) para el número en sí. El mismo principio se aplica a otros identificadores basados en sumas de verificación, como los ISBN y ciertos formatos de números de identidad nacionales — el regex confirma la forma; un algoritmo aparte confirma que el número es real.
¿Cómo maneja el regex de un número de teléfono de EE. UU. distintos estilos de formato?
En ^(?:\+1|1)?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$, (?:\+1|1)? hace opcional el prefijo de país, \(?...\)? hace opcionales los paréntesis alrededor del prefijo local, y cada [\s.-]? hace opcional un espacio, un punto o un guion entre grupos de dígitos. Así, «(555) 123-4567», «555.123.4567», «+1 555 123 4567» y «5551234567» coinciden todos con el mismo patrón único.
Ten en cuenta que este patrón se dirige a los números estadounidenses típicos de 10 dígitos; no validará números internacionales en otros formatos, y no comprueba que un prefijo local exista realmente. Haz clic en la plantilla «Número de teléfono (US)» de arriba para probarlo en vivo.
Cuantificadores codiciosos frente a perezosos — ¿cuál es la diferencia?
Por defecto, los cuantificadores como *, + y {n,m} son codiciosos: intentan hacer coincidir el mayor número de caracteres posible. Por ejemplo, el patrón <.+> aplicado a «<b>texto</b>» hace coincidir TODO, desde el primer < hasta el último >, en una sola coincidencia — generalmente no lo que se desea.
Añadir un ? después del cuantificador (<.+?>) lo vuelve perezoso, de modo que intenta hacer coincidir el MENOR número de caracteres posible: en el mismo texto, encuentra dos coincidencias distintas, «<b>» y luego «</b>». Al trabajar con delimitadores anidados como las etiquetas HTML/XML, un cuantificador perezoso suele dar el resultado esperado.
Preguntas frecuentes
¿Cómo se prueba un patrón regex?
Escribe tu patrón regex en una herramienta de prueba e introduce el texto que quieres comprobar para ver las
coincidencias en vivo. En esta herramienta, tras introducir tu patrón y tus banderas (g, i, m, s, u), las partes del texto
que coinciden se resaltan automáticamente en color; los grupos de captura, la información de posición y los
grupos con nombre se muestran en una tabla aparte. Puedes ajustar tu patrón mediante pruebas rápidas.
¿Qué es una expresión regular (regex)?
Una expresión regular (regex) es una sintaxis especial que se usa para definir un patrón preciso dentro de un texto.
Por ejemplo, el patrón \d{11} significa «11 dígitos seguidos». El regex se usa ampliamente para la
validación de formularios (email, número de teléfono, formato de tarjeta bancaria), la búsqueda-reemplazo de texto,
el análisis de registros y la extracción de datos, y se admite con una sintaxis muy similar en casi
todos los lenguajes de programación (JavaScript, Python, PHP, Java).
¿Cómo se escribe un regex para un número de teléfono de EE. UU.?
El patrón ^(?:\+1|1)?\s?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$ coincide con un número de teléfono
estadounidense de 10 dígitos, con un prefijo +1/1 opcional, paréntesis opcionales alrededor del prefijo local, y
espacios, puntos o guiones opcionales entre los grupos. Esto significa que «(555) 123-4567», «555.123.4567» y
«+1 555 123 4567» pueden coincidir todos con el mismo patrón. Este patrón solo comprueba el formato habitual — no
verifica que un prefijo local esté realmente asignado.
¿Cuál es un ejemplo de regex para un email?
Un patrón práctico de validación de email es ^[\w.+-]+@[\w-]+\.[a-zA-Z]{2,}$: busca
letras, dígitos, guion bajo, punto, más o guion en el nombre de usuario, un signo @, un nombre de dominio y una extensión
de al menos dos letras. Un regex de email totalmente conforme con RFC 5322 es mucho más complejo; en la práctica, este
patrón simplificado basta para la mayoría de las validaciones de formulario.
¿Cómo se valida el formato de un número de tarjeta bancaria con un regex — y es suficiente?
El patrón ^\d{4}[\s-]?\d{4}[\s-]?\d{4}[\s-]?\d{4}$ comprueba que un número de tarjeta está formado por
cuatro grupos de cuatro dígitos, separados opcionalmente por espacios o guiones. Esto es solo una comprobación
de formato — un número de tarjeta realmente válido también debe pasar el algoritmo de Luhn, un cálculo aritmético dígito
a dígito que un regex por sí solo no puede realizar. En la práctica, usa un enfoque de dos pasos: un filtro de
formato regex rápido, seguido de una verificación de Luhn en el código de tu aplicación.
¿Es seguro usar un probador de regex online?
En esta herramienta, tu patrón regex y tu texto de prueba se procesan íntegramente en tu navegador
(JavaScript del lado del cliente); nada se envía a un servidor, se guarda ni se registra. Cuando creas un enlace
compartible, solo el patrón y las banderas se añaden a la URL — tu texto de prueba, que puede contener datos
personales, nunca se incluye en el enlace.
¿Qué es un grupo de captura en regex?
Una sección entre paréntesis, como (abc), forma un «grupo de captura» y hace que el
texto que coincide con esa sección esté disponible por separado; por ejemplo, el patrón (\d{2})-(\d{2}) aplicado a
«12-34» captura el grupo 1 = «12» y el grupo 2 = «34». Los grupos se pueden nombrar con la sintaxis
(?<nombre>...) (un grupo con nombre); (?:...) agrupa sin capturar en absoluto.
¿Cómo funciona la búsqueda-reemplazo en regex?
En una operación de buscar-reemplazar, el texto que coincide con el regex se sustituye por otra
cadena; los grupos de captura se referencian con $1, $2… o, para grupos con nombre, con
$<nombre>. Por ejemplo, aplicando el patrón (\d{4})-(\d{2})-(\d{2}) con el reemplazo
$2/$3/$1, «2026-07-26» se convierte en «07/26/2026». Si la bandera «g» no está marcada, solo se reemplaza la primera
coincidencia.
¿Cómo se extraen todos los emails o números de teléfono de un bloque de texto con un regex?
Escribe tu patrón (por ejemplo, [\w.+-]+@[\w-]+\.[a-zA-Z]{2,} para un email), activa la bandera
«g», y pega tu texto; luego, en la pestaña «Extraer / Listar», cada coincidencia se muestra en texto
plano — una por línea, separada por comas, o con un separador personalizado. Usa «eliminar duplicados»
para quitar repeticiones, copia la lista con un clic, o descárgala en .txt, o en .csv con los detalles de
posición y grupo incluidos. Consejo: no uses los anclajes ^ y $ si quieres
buscar dentro de una línea en lugar de hacer coincidir la línea completa.
¿Cómo pruebo mi patrón regex con varios ejemplos (pruebas unitarias)?
Usa la pestaña «Pruebas»: introduce ejemplos que deben coincidir con tu patrón en el campo
«Debe coincidir», y ejemplos que NO deben coincidir en el campo «NO debe coincidir», uno
por línea. La herramienta ejecuta cada línea contra tu patrón, la compara con tu expectativa, y marca cada una en verde
(correcto) o en rojo (fallido), con un resumen «X/Y pruebas superadas» arriba. Ideal para reforzar patrones de
validación como números de teléfono o emails frente a varios ejemplos reales. Usa los anclajes
^ y $ para una validación de línea completa.
¿De dónde vienen las plantillas integradas, y con qué frecuencia se actualizan?
Las plantillas listas para usar (teléfono US, email, código postal, IBAN, tarjeta bancaria, color
hexadecimal, contraseña segura) se basan en convenciones de formato ampliamente reconocidas y, al ser reglas
estructurales duraderas, no requieren actualizaciones frecuentes. El motor de coincidencia es el motor regex
ECMAScript integrado en tu navegador. Última actualización:
26 de julio de 2026.
Metodología y fuentes
El probador de regex de ToolPico es una herramienta independiente y gratuita. El motor de coincidencia usa directamente
la implementación RegExp ECMAScript (JavaScript) integrada en el navegador — no se requiere procesamiento del lado
del servidor ni una API de terceros. Las plantillas listas para usar (teléfono, email, código postal, IBAN, tarjeta bancaria, color
hexadecimal, contraseña segura) se construyen a partir de convenciones de formato ampliamente reconocidas.
Fuentes: referencia de sintaxis de expresiones regulares ECMA-262 (JavaScript) · ISO 13616 (estructura IBAN) ·
convenciones de formato generalmente aceptadas para números de teléfono y códigos postales estadounidenses ·
el algoritmo de Luhn (ISO/IEC 7812-1) para sumas de verificación de números de tarjeta. Última actualización:
26 de julio de 2026. Los resultados se ofrecen con fines informativos y de desarrollo; combínalos con una
validación algorítmica (suma de verificación) para comprobaciones críticas de datos.
🔗 Añade esta herramienta a tu sitio
Copia el código de abajo en tu propio sitio. La herramienta es gratis, siempre está actualizada, y funciona íntegramente en tu página. No requiere registro.