Probador de expresiones regulares
TextoTodo se ejecuta en tu navegador: no se sube nada
PATRONES COMUNES
Las coincidencias y los reemplazos ocurren en tu navegador: ni la expresión ni el texto se suben.
Construye una expresión regular en el navegador: las coincidencias se resaltan mientras escribes, los grupos de captura (incluidos los que llevan nombre) se listan uno a uno, y al escribir un reemplazo se previsualiza el texto entero reescrito. La herramienta además protege contra el retroceso catastrófico: un patrón como (a+)+ puede bloquear una pestaña durante segundos con una entrada larga, así que se detecta de antemano, se rechaza en textos largos y se explica el motivo en vez de fingir que el escaneo terminó. Cuando el patrón se porta bien, genera el código equivalente en JavaScript, Python, Java, Go o PHP: los modificadores se traducen uno a uno (fuera de JavaScript, g no es una letra sino la elección de una API) y la sintaxis de la retrorreferencia del reemplazo también se convierte —Python quiere \1 donde JavaScript quiere $1, y equivocarse produce en silencio la salida incorrecta.
Funciones
- Resaltado en vivo de cada coincidencia, con las de ancho cero como \b y (?=x) marcadas en su sitio
- Tabla de grupos de captura con el número de grupo, el nombre y el valor; los grupos que no participaron quedan visiblemente vacíos
- Vista previa del reemplazo con $1, $& y $<name>, siempre previsualizada de forma global
- Genera código en JavaScript, Python, Java, Go o PHP, con el escapado del patrón, la traducción de los modificadores y la llamada de coincidencia global correcta
- Las retrorreferencias del reemplazo se convierten por lenguaje (Python usa \1, el resto $1) en lugar de pegar $1 tal cual en el resultado
- El motor de expresiones regulares de Go es RE2: sin lookaround y sin retrorreferencias. Esos patrones reciben un aviso explícito en vez de código que no compilará
- Interruptores individuales para los modificadores g / i / m / s / u que se comportan exactamente como el motor de JavaScript
- Defensa contra ReDoS: los cuantificadores anidados y las alternancias cuantificadas detienen la ejecución en entradas largas con una explicación
- Límites honestos: entradas de más de 100.000 caracteres, más de 2.000 coincidencias o un escaneo de más de 120 ms se informan
- Una chuleta de patrones comunes (correo, URL, IPv4, fechas, horas, CJK, teléfonos, colores, etiquetas) que se carga junto con un texto de ejemplo
Cómo se usa
- Escribe tu patrón entre las barras y marca los modificadores que necesites
- Pega el texto de prueba a la izquierda: las coincidencias se resaltan mientras escribes
- Escribe una cadena de reemplazo para previsualizar abajo el texto reescrito
- Elige un lenguaje de destino y el panel de código te da una implementación equivalente lista para pegar
- Pulsa una entrada de la chuleta para cargarla y verla funcionar al momento
Preguntas frecuentes
- ¿Por qué mi patrón no devolvió nada?
- Si el texto es largo y el patrón contiene cuantificadores anidados como (a+)+ o (\d+\s?)*, la herramienta se detiene y te lo dice. Esos patrones retroceden de forma exponencial con entradas largas y congelarían la pestaña durante segundos. Verifica primero con un texto corto, o reescribe el patrón sin anidamiento.
- ¿Por qué dice que el modificador global está desactivado?
- Sin g, JavaScript solo devuelve la primera coincidencia. Es el motor comportándose con normalidad, y la herramienta lo informa en vez de añadir g en silencio: de lo contrario, un patrón que aquí funciona se comportaría distinto al pegarlo en tu código.
- ¿Se recorta la entrada larga?
- Sí. A partir de 100.000 caracteres solo se escanea la primera parte, y la página lo dice claramente. Una expresión regular síncrona no se puede interrumpir una vez empieza, así que limitar el tamaño de la entrada es la única protección fiable.
- ¿Puedo usar el código generado tal cual?
- Sí, con dos cosas que conviene comprobar por lenguaje. Primero los modificadores: fuera de JavaScript, g no es una letra sino la elección de una API —Python usa findall, Java necesita un bucle while (matcher.find()), Go usa FindAllString—, y el código generado ya lo hace. Segundo la sintaxis de la retrorreferencia en el reemplazo: JavaScript escribe $1, Python escribe \1, y la conversión se hace por ti. Si el patrón usa lookaround o una retrorreferencia y eliges Go (cuyo motor es RE2), aparece un aviso encima del código, porque ese patrón no compilará ahí.
- ¿Se sube mi patrón o mi texto?
- No. Las coincidencias y los reemplazos se ejecutan por completo en tu navegador, la página no hace ninguna petición de red y sigue funcionando sin conexión.
Herramientas relacionadas
Limpiar texto
TextoLimpia una columna copiada de un log o una hoja: quita duplicados, ordena, borra líneas vacías, recorta espacios y quita la numeración de línea.
Comparar texto
TextoCompara dos textos línea a línea y resalta las líneas añadidas, borradas y sin cambios, alineando cada edición por diferencia mínima. Todo local.
Contador de palabras
Texto¿Cuánto mide este texto? Cuenta por separado caracteres chinos y palabras inglesas, con caracteres, líneas, bytes UTF-8, tiempo de lectura y SMS.
Estilo de nombres
TextoConvierte identificadores entre catorce estilos de nombres, separando bien las palabras de siglas como HTTPServer. Todo en tu navegador.
Conversor de chino
TextoConvierte texto chino entre caracteres simplificados y tradicionales: primero las palabras frecuentes y luego la forma más habitual del resto.
Previsualizar Markdown
TextoEscribe Markdown a la izquierda y velo renderizado a la derecha: anclas, índice y bloques de código coloreados. El HTML pegado sigue siendo texto.