CodeKitHub
Español
Herramientas de texto

Probador de expresiones regulares en línea

Escribe una expresión regular y observa cómo se resaltan las coincidencias en tu texto de prueba al instante, a medida que escribes. Los grupos de captura se muestran por coincidencia, y se admiten todos los indicadores de expresiones regulares de JavaScript. Ideal para crear y depurar patrones antes de incorporarlos al código.

//

    ¿Qué es esta herramienta?

    Una expresión regular (regex) es un lenguaje de patrones compacto que permite buscar, validar y extraer texto: un patrón de correo electrónico puede validar los datos introducidos en un formulario, \d{4}-\d{2}-\d{2} permite buscar fechas y los grupos de captura extraen las partes que necesitas. Casi todos los lenguajes de programación y editores admiten expresiones regulares.

    Este probador utiliza el motor de expresiones regulares de JavaScript —el mismo que se ejecuta en Node.js y en todos los navegadores—, por lo que los patrones que crees aquí se comportarán de forma idéntica en tu código JavaScript/TypeScript. La mayoría de los patrones también funcionan sin modificaciones en Python, Java y Go.

    ¿Por qué utilizarlo?

    • Respuesta en tiempo real: las coincidencias se resaltan en amarillo a medida que escribes la secuencia.
    • Grupos de captura mostrados por coincidencia: comprueba exactamente qué contendrán «1 $» y «2 $».
    • Compatibilidad completa con opciones: g (coincidencia de todo el texto), i (sin distinción entre mayúsculas y minúsculas), m (varias líneas), s (el punto coincide con un salto de línea), u (Unicode).
    • Mostrar mensajes de error claros cuando el patrón contenga un error sintáctico.
    • Gratis y privado: ni el patrón ni el texto salen nunca de tu navegador.

    Cómo utilizarlo

    1. Escribe tu patrón entre los dos caracteres / (no es necesario que añadas tú mismo los caracteres de escape).
    2. Ajusta los parámetros en el pequeño cuadro que hay después del segundo / — la opción predeterminada «g» encuentra todas las coincidencias.
    3. Pega tu texto de prueba a continuación.
    4. Las coincidencias se resaltan al instante; los grupos capturados aparecen en la lista que hay debajo.
    5. Si el patrón no es válido, el mensaje de error explica cuál es el problema.

    Ejemplo

    Entrada

    Pattern: (\w+)@(\w+)\.com
    Test string: Contact alice@example.com or bob@test.com

    Resultado

    ✓ 2 matches
    #1 groups: $1=alice  $2=example
    #2 groups: $1=bob  $2=test

    Los paréntesis crean grupos de captura a los que puedes hacer referencia como $1 y $2 en las sustituciones.

    Consejos prácticos

    • ¿Quieres validar una dirección de correo electrónico introducida? ^[^\s@]+@[^\s@]+\.[^\s@]+$ es un patrón permisivo que detecta errores tipográficos evidentes sin rechazar direcciones válidas, aunque sean poco habituales; para cumplir plenamente con el RFC 5322 se necesita una biblioteca, no una línea de código.
    • Extraer los parámetros de consulta de una URL: [?&]([^=]+)=([^&]*) con la bandera «g» y, a continuación, leer $1/$2 por cada coincidencia, en lugar de separarlos manualmente por «&» y «=».
    • ¿Vas a utilizar un patrón en .replace()? Pruébalo aquí primero: lo que aparece resaltado es exactamente lo que modificará .replace(), incluidos los grupos de captura.
    • ¿Cómo analizar registros de varias líneas (buscando una marca de tiempo al principio de cada línea)? Añade el indicador «m» para que los anclajes ^ y $ se apliquen a cada línea en lugar de a toda la cadena.
    • ¿Has copiado un patrón de Python o PHP y no te cuadra aquí? Comprueba si hay grupos con nombre (?P<nombre>...) —JavaScript utiliza (?<nombre>...), sin la «P»— o cuantificadores posesivos (++, *+), que no existen en las expresiones regulares de JavaScript.

    Un probador de expresiones regulares de JavaScript, no uno genérico

    Esta herramienta ejecuta el motor RegExp integrado en JavaScript —la ruta de código exacta que hay detrás de str.match(pattern) o pattern.test(str) en la consola de un navegador o en Node.js—. Esto difiere de las comprobaciones con PCRE (lo que utiliza PHP y lo que muchos comprobadores de expresiones regulares «universales» utilizan por defecto) o con el módulo re de Python: JavaScript no tiene cuantificadores posesivos ni grupos atómicos, y los grupos de captura con nombre utilizan (?<nombre>...) en lugar de (?P<nombre>...) de PCRE/Python.

    Si estás a punto de implementar un patrón en JavaScript o TypeScript —ya sea una validación de formulario, un comparador de rutas o un analizador de registros—, probarlo aquí te garantiza que no habrá ninguna discrepancia: lo que aparece resaltado en esta página es exactamente lo que el nuevo RegExp(patrón, indicadores) detecta en tiempo de ejecución.

    Cómo encaja esto en los flujos de trabajo reales

    Una prueba con expresiones regulares rara vez se realiza de forma aislada. El proceso habitual es el siguiente: confirma aquí el patrón, ejecuta la función .replace() en tu código y, a continuación, compara el texto antes y después para asegurarte de que la sustitución ha dado el resultado esperado y nada más.

    La extracción de datos estructurados mediante grupos de captura suele generar directamente datos en formato JSON; formatea el resultado extraído para comprobar que se ha analizado tal y como esperabas.

    Diferencias entre textos · Formateador JSON

    Preguntas frecuentes

    ¿Qué variante de expresiones regulares utiliza este probador?

    JavaScript (ECMAScript), el motor que se utiliza en todos los navegadores y en Node.js. La sintaxis básica es compatible entre lenguajes, pero algunas características difieren de uno a otro; por ejemplo, la compatibilidad con la búsqueda retrospectiva y la sintaxis de los grupos con nombre varían en Python y Java.

    ¿Por qué mi patrón solo encuentra la primera coincidencia?

    Falta el indicador «g» (global). Sin «g», una expresión regular se detiene tras la primera coincidencia. Esta herramienta utiliza «g» por defecto; comprueba que no lo hayas eliminado.

    ¿Por qué no se ajusta a mis saltos de línea?

    Por defecto, «.» coincide con cualquier carácter excepto los saltos de línea. Añade el indicador «s» (dotall) para que «.» coincida también con los saltos de línea, o utiliza [\s\S] como alternativa portátil.

    ¿Qué significan los resultados del grupo de captura?

    Cada par de paréntesis del patrón captura el texto con el que coincide. $1 es el primer grupo, $2 el segundo, y así sucesivamente; a estos es a los que se hace referencia en las operaciones de sustitución y en el código de extracción.

    ¿Por qué mi expresión regular va lenta o se cuelga?

    Es probable que se produzca un retroceso catastrófico, causado por cuantificadores anidados como (a+)+ en una entrada que no coincide. Reescribe el patrón para evitar repeticiones ambiguas. Esta herramienta tiene un límite de 1.000 coincidencias para mantener su rapidez de respuesta.

    Herramientas relacionadas