Prueba de expresiones regulares
Prueba expresiones regulares JavaScript localmente con banderas g/i/m/s/u/y, recuentos de coincidencias, grupos de captura, grupos con nombre, posiciones línea-columna y vista previa de reemplazo nativo.
/
/g
Texto de prueba
Caracteres
0 / 50,000
Resultados de coincidencia
Ingresa un patrón para empezar a buscar coincidencias
Texto de reemplazo
Caracteres
0 / 50,000
Vista previa de reemplazo
Inicio rápido
Escenarios comunes
Extracción de datos
usa (\d{4}-\d{2}-\d{2}) para extraer fechas y ([\w.]+@[\w.]+) para extraer direcciones de correo electrónico
Validación de formato
escribe una regex, pega varias muestras y verifica rápido si el patrón coincide exactamente con el formato objetivo
Reemplazo por lotes
usa grupos de captura para reestructurar contenido. Por ejemplo, convierte "Nombre Apellido" en "Apellido, Nombre" con el patrón (\S+)\s+(\S+) y el reemplazo $2, $1
Grupos con nombre
usa (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) para extraer fechas, y luego $<year>/$<month>/$<day> para reconstruirlas
Aprendizaje de regex
prueba distintos patrones y observa el comportamiento de coincidencia para entender visualmente cuantificadores, anclas y clases de caracteres
Manejo multilínea
activa la bandera m para que ^ y $ coincidan por línea, útil para logs, código y archivos de configuración
Consejos de uso
Limitaciones y compatibilidad
Privacidad y seguridad
Preguntas frecuentes
Una expresión regular (regex) es un lenguaje de patrones para describir estructuras de texto. Piense en ello como una "búsqueda avanzada": en lugar de buscar una palabra fija, busca todo lo que coincida con una regla.\n\nPor ejemplo, \\d{4}-\\d{2}-\\d{2} coincide con todas las fechas en formato AAAA-MM-DD, y [\\w.]+@[\\w.]+ coincide con direcciones de correo electrónico. Regex se usa ampliamente para: búsqueda y extracción de texto (encontrar códigos de error en registros), validación de formato (verificar números de teléfono) y reemplazo por lotes (convertir formatos de fecha).\n\nCasi todos los lenguajes de programación (JavaScript, Python, Java, Go, etc.) y muchas herramientas (VS Code, grep, sed) admiten expresiones regulares con sintaxis en su mayoría similar. Esta herramienta utiliza el motor JavaScript RegExp para realizar pruebas y aprendizaje rápidos en línea.
Una regex JavaScript devuelve solo la primera coincidencia de forma predeterminada; es comportamiento del lenguaje, no una limitación de la herramienta. Activa la bandera g para habilitar la búsqueda global y ver todas las coincidencias.\n\nTen en cuenta la interacción entre g e y: g escanea todo el texto de principio a fin, mientras que y (sticky) exige que cada coincidencia empiece exactamente donde terminó la anterior. Si hay caracteres entre coincidencias, y se detiene en el primer hueco. Normalmente basta con activar g sin y.
Las causas más comunes son cuatro: 1. Paréntesis o corchetes sin cerrar: cada ( necesita su ), y cada [ necesita su ]. Aunque el editor los complete automáticamente, la herramienta valida el patrón que escribiste. 2. Cuantificadores mal colocados: *, +, ?, {n} deben ir detrás de algo repetible. Combinaciones como *+ o ?* no son válidas; los cuantificadores no codiciosos se escriben como *? o +?. 3. Escape incompleto: una \ suelta al final no es válida; debe escapar un carácter concreto, como \d, \n o \\. 4. Propiedades Unicode sin la bandera u: \p{L}, \p{Script=Han} y escapes similares necesitan activar u en esta herramienta.
Estas referencias pertenecen a String.prototype.replace() de JavaScript: - $1, $2, ..., $99: contenido del grupo de captura correspondiente. - $&: coincidencia completa. - $`: texto anterior a la coincidencia. - $': texto posterior a la coincidencia. - $<name>: contenido de un grupo con nombre (?<name>...). Por ejemplo, si (\w+)\s(\w+) coincide con “hello world”, el reemplazo $2-$1 produce “world-hello”. Para incluir un $ literal en el reemplazo, escribe $$.
Los motores regex cambian según el lenguaje en tres aspectos principales: 1. Sintaxis admitida: JavaScript no admite recursión PCRE (?R), ramas condicionales (?(cond)yes|no) ni grupos atómicos (?>...). El módulo re de Python tampoco; el módulo regex sí cubre parte de esos casos. Java admite grupos atómicos, pero no recursión. 2. Unicode: en JavaScript, \w coincide sobre todo con letras latinas básicas, dígitos y guion bajo. Activar u no hace que coincida automáticamente con caracteres chinos. Para letras Unicode, usa escapes de propiedad como \p{L} con la bandera u. 3. Saltos de línea: en Python, . no coincide con \n por defecto, igual que en JavaScript. Pattern.DOTALL en Java se parece a la bandera s de JavaScript. Usa esta herramienta para verificar JavaScript RegExp rápidamente y confirma después con el motor real del lenguaje de destino.