Saltar al contenido

Probador y Validador de Regex en Línea Gratuito - Pruebe Patrones al Instante

Pruebe y valide expresiones regulares en línea con resaltado en tiempo real. Probador de patrones regex gratuito con validación de sintaxis, resultados de coincidencias y funcionalidad de guardado. ¡Pruebe regex ahora!

Probador de Patrones Regex

Resultados de Coincidencias

Introducir un patrón y texto de prueba para ver resultados

Guardar Patrón

Patrones Guardados

Aún no hay patrones guardados

Guía de Símbolos Regex

.Coincide con cualquier carácter excepto salto de línea
\dCoincide con cualquier dígito (0-9)
\DCoincide con cualquier carácter que no sea un dígito
\wCoincide con cualquier carácter de palabra (a-z, A-Z, 0-9, _)
\WCoincide con cualquier carácter que no sea de palabra
\sCoincide con cualquier carácter de espacio en blanco
\SCoincide con cualquier carácter que no sea un espacio en blanco
^Coincide con el inicio de línea
$Coincide con el final de línea
*Coincide con 0 o más del carácter precedente
+Coincide con 1 o más del carácter precedente
?Coincide con 0 o 1 del carácter precedente
{n}Coincide exactamente con n del carácter precedente
{n,}Coincide con al menos n del carácter precedente
{n,m}Coincide entre n y m del carácter precedente
[abc]Coincide con cualquiera de los caracteres entre corchetes
[^abc]Coincide con cualquier carácter que no esté entre corchetes
(abc)Agrupa múltiples tokens y captura la coincidencia
a|bCoincide con a o b
\bCoincide con una posición de límite de palabra
Calculadora de carga...
📚

Documentación

Qué es un probador de expresiones regulares

Un probador de expresiones regulares es una herramienta que comprueba una expresión regular frente a un fragmento de texto y muestra con qué coincide. Una expresión regular, o regex, es una secuencia breve de caracteres que describe un patrón en el texto, como «tres dígitos seguidos» o «cualquier palabra que empiece por una letra mayúscula». Este validador de expresiones regulares permite escribir un patrón y un texto de prueba, y ver de inmediato las coincidencias resaltadas sin tener que escribir código.

Las expresiones regulares se utilizan en muchos lenguajes de programación para buscar texto, comprobar que los datos introducidos por el usuario tienen el formato correcto y extraer fragmentos específicos de un bloque de texto más grande. La sintaxis es compacta, pero es fácil equivocarse, por lo que probar un patrón antes de usarlo en un programa ayuda a detectar pronto los errores.

Cómo probar una expresión regular en línea

  1. Escribir un patrón. Introduce la expresión regular en el campo del patrón. La herramienta comprueba la sintaxis mientras el usuario escribe y muestra un mensaje de error si el patrón no es válido, por ejemplo, si queda abierto un corchete o un paréntesis.
  2. Elegir las banderas. Las banderas cambian la forma en que se aplica el patrón (véase más abajo).
  3. Introducir el texto de prueba. Escribe o pega el texto que se va a buscar en el cuadro de texto de prueba.
  4. Leer los resultados. Las coincidencias aparecen resaltadas en el texto y la herramienta informa de cuántas ha encontrado. Si hay texto de prueba, también indica si el patrón coincide con todo el texto desde el principio hasta el final o solo con una parte.
  5. Guardar un patrón. Se puede guardar un patrón con una etiqueta breve para reutilizarlo más adelante. Los patrones guardados se conservan en el navegador, no en un servidor, por lo que solo aparecen en el mismo dispositivo y navegador.
  6. Copiar los resultados. El texto coincidente o el propio patrón se pueden copiar al portapapeles con un clic.

Banderas regex

Una bandera es una letra individual que se añade después de un patrón y cambia su comportamiento. Esta herramienta admite cuatro banderas, solas o combinadas:

BanderaNombreEfecto
gGlobalEncuentra todas las coincidencias del texto en lugar de detenerse en la primera.
iSin distinción entre mayúsculas y minúsculasIgnora las diferencias entre mayúsculas y minúsculas.
mMultilíneaHace que ^ y $ coincidan con el principio y el final de cada línea, no solo con el principio y el final de todo el texto. Cambia dónde se encuentran las coincidencias, pero no la comprobación del texto completo descrita más abajo.
sPunto para todoHace que . también coincida con los caracteres de salto de línea.

Las banderas se pueden combinar; por ejemplo, gi para global y sin distinción entre mayúsculas y minúsculas, o gms para global, multilínea y punto para todo.

Cómo encuentra coincidencias la herramienta

El buscador siempre busca todas las apariciones del patrón en el texto. Por eso, el recuento de coincidencias se comporta como si la bandera global estuviera activada aunque no se haya seleccionado en el menú desplegable. Cada coincidencia se registra con su posición y longitud; después, el texto original se divide en fragmentos coincidentes y no coincidentes para poder resaltar las coincidencias.

Para comprobar si un patrón coincide con todo el texto, la herramienta lo envuelve en un grupo que no captura y le añade anclas: ^(?:pattern)$. La agrupación es importante porque | (alternancia) tiene menor precedencia que las anclas. Sin el grupo, un patrón como cat|dog anclado como ^cat|dog$ significaría realmente «empieza por cat o termina por dog», que no equivale a «todo el texto es cat o dog».

Esta comprobación también elimina la bandera multilínea. Con m activada, ^ y $ coinciden en cada salto de línea, por lo que la prueba anclada respondería «¿coincide alguna línea?» en vez de «¿coincide todo el texto?». La herramienta elimina m para esta comprobación y conserva i y s, porque esas dos banderas cambian con qué coincide el patrón, no dónde se sitúan las anclas. Por tanto, la respuesta siempre se refiere al texto completo, incluidos sus saltos de línea.

Ejemplo resuelto

Patrón: \d+ (uno o más dígitos), bandera: g, texto de prueba: Room 12 has 5 chairs.

  • Coincidencias encontradas: 12 y 5, por lo que el número de coincidencias es 2.
  • Comprobación del texto completo: el patrón no coincide con todo el texto, porque este también contiene letras y espacios.

Si el texto de prueba se cambia por 12345, el mismo patrón coincide con toda la cadena, por lo que la comprobación del texto completo indica verdadero.

Referencia de sintaxis de expresiones regulares

Coincidencia de caracteres

SímboloSignificadoEjemploCoincide con
.Cualquier carácter excepto un salto de líneaa.c«abc», «adc», «a1c»
\dCualquier dígito, de 0 a 9\d{3}"123", "456"
\DCualquier carácter que no sea un dígito\D+«abc», «xyz»
\wCualquier letra, dígito o guion bajo\w+«abc123», «test_123»
\WCualquier carácter que no sea una letra, un dígito ni un guion bajo\W+"!@#"
\sCualquier carácter de espacio en blancoa\sb«a b»
\SCualquier carácter que no sea un espacio en blanco\S+«abc»

Anclas de posición

SímboloSignificadoEjemploCoincide con
^Principio de una línea^abc«abc» al principio de una línea
$Final de una líneaabc$«abc» al final de una línea
\bUn límite de palabra\bword\b«word» como palabra completa

Cuantificadores

SímboloSignificadoEjemploCoincide con
*Cero o más apariciones del elemento anteriora*b«b», «ab», «aab»
+Una o más apariciones del elemento anteriora+b«ab», «aab»
?Cero o una aparición del elemento anteriorcolou?r«color», «colour»
{n}Exactamente n apariciones del elemento anteriora{3}«aaa»
{n,}Al menos n apariciones del elemento anteriora{2,}«aa», «aaa»
{n,m}Entre n y m apariciones del elemento anteriora{2,4}«aa», «aaa», «aaaa»

Conjuntos de caracteres y grupos

SímboloSignificadoEjemploCoincide con
[abc]Cualquier carácter individual incluido entre los corchetes[aeiou]cualquier vocal individual
[^abc]Cualquier carácter que no esté incluido entre los corchetes[^aeiou]cualquier carácter que no sea una vocal
(abc)Agrupa caracteres y captura la coincidencia(abc)+«abc», «abcabc»
a\bCoincide con a o con bcat\

Conviene conocer otras dos funciones. Una anticipación, escrita a(?=b), coincide con «a» solo cuando va seguida de «b», sin incluir «b» en la coincidencia. Una retrospectiva, escrita (?<=a)b, coincide con «b» solo cuando aparece justo después de «a».

Ejemplos habituales de patrones

Estos patrones se pueden pegar en la herramienta para ver cómo se comportan frente a un texto de muestra.

Solo dígitos: ^\d+$ coincide con una cadena formada únicamente por dígitos, como «48210», y rechaza cualquier cadena que contenga una letra o un espacio.

Dirección de correo electrónico (comprobación básica): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ coincide con direcciones con el formato name@domain.tld, como «user@example.com». Es una comprobación sencilla, no el formato completo del correo electrónico definido por los estándares de internet, por lo que algunas direcciones válidas poco habituales no la superarán.

Número de teléfono de EE. UU.: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ coincide con formatos como «(123) 456-7890», «123-456-7890» y «1234567890».

Fecha con formato YYYY-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ comprueba que el mes esté entre 01 y 12 y que el día esté entre 01 y 31. No comprueba que el día sea válido para el mes concreto, por lo que acepta «2024-02-30» aunque febrero nunca tenga 30 días.

Preguntas frecuentes

¿Qué es una expresión regular? Una expresión regular es una secuencia de caracteres que define un patrón de búsqueda. Se utiliza para buscar, hacer coincidir y editar texto en la mayoría de los lenguajes de programación y editores de texto.

¿Qué hace la bandera global? Sin la bandera global, una búsqueda normalmente se detiene después de la primera coincidencia. Con la bandera global (g), la búsqueda continúa e informa de todas las coincidencias del texto. Esta herramienta siempre busca todas las coincidencias al contarlas, independientemente de la bandera elegida.

¿Cómo hago coincidir un punto literal u otro carácter especial? Coloca una barra inversa delante. Por ejemplo, \. coincide con un punto literal en lugar de «cualquier carácter», que es lo que significa . sin escape.

¿Cuál es la diferencia entre .* y .*?? .* es codicioso y coincide con tantos caracteres como puede. .*? es perezoso y coincide con el menor número de caracteres posible sin impedir que el resto del patrón tenga éxito.

¿Por qué dice la herramienta que el texto no coincide por completo si todas las líneas coinciden? La comprobación del texto completo trata el texto como una sola cadena, incluidos los saltos de línea. Un patrón como \d+ coincide por separado con cada línea de 12 y 34, pero las dos líneas y el salto de línea que las separa no están formados exclusivamente por dígitos, por lo que la respuesta para el texto completo es no. Para hacer coincidir texto que abarca varias líneas, el patrón también debe cubrir los saltos de línea, por ejemplo con [\s\S]+.

¿Cómo compruebo que una cadena completa coincide con un patrón y no solo una parte? Añade ^ al principio y $ al final del patrón; por ejemplo, ^[0-9]+$ para una cadena formada únicamente por dígitos.

¿Este probador aplica las reglas de expresiones regulares de otros lenguajes de programación? Esta herramienta utiliza el motor de expresiones regulares integrado en JavaScript. La mayor parte de la sintaxis básica, como las clases de caracteres y los cuantificadores, es compartida por lenguajes como Python, Java y Perl, pero algunos detalles difieren, por lo que no se garantiza que un patrón que funcione aquí se comporte exactamente igual en todas partes.

Referencias

  1. "Regular expression." Wikipedia, Fundación Wikimedia. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.