piapia123
es

Generador de código regex

Web

Todo se ejecuta en tu navegador: no se sube nada

Entrada
Arrastra un archivo aquí para cargarlo
Resultado

Escribe una expresión regular, elige un lenguaje y obtén cuatro fragmentos listos: buscar, extraer todas, reemplazar y probar. El punto de esta herramienta es cuántas barras invertidas hay que escribir. El mismo `\d+` necesita un número distinto según el lenguaje, y equivocarse no lanza nada: · En JavaScript `"\d"` es `"d"` — un escape inválido dentro de una cadena se descarta en silencio, así que tu patrón se convierte sin avisar en `d` y no coincide con nada. Escribe `"\\d"` o usa un literal de regex `/…/`. · Python usa una cadena cruda `r"…"`, así que no hace falta duplicar; una cadena normal ahora lanza un DeprecationWarning. · Las cadenas entre comillas dobles de Java y C# tratan la barra invertida como escape, así que hay que escribir `\\d`. · En una cadena PHP entre comillas simples solo `\\` y `\'` son escapes, así que `'/\d/'` es correcto: duplicar ahí es el error. · Go usa una cadena cruda entre acentos graves, que tampoco necesita duplicar. ⚠️ Un patrón que no compila se rechaza aquí en vez de convertirse en fragmentos que fallan en tu proyecto, donde el mensaje de error es mucho menos claro. ⚠️ El `$1` / `\1` de un reemplazo es una referencia de grupo y su sintaxis varía (`\1` en Python, casi siempre `$1` en los demás); hay una nota que lo dice.

Funciones

  • Seis lenguajes: JavaScript, Python, Java, Go, PHP, C#
  • ⚠️ Cada lenguaje recibe su escape correcto, no la misma cadena reutilizada
  • Cuatro fragmentos: buscar, extraer todas, reemplazar, probar
  • Los fragmentos son completos y ejecutables (con import / using y declaraciones), no una expresión suelta
  • Los modificadores se traducen por lenguaje (`re.IGNORECASE`, `Pattern.CASE_INSENSITIVE`, `RegexOptions.IgnoreCase`)
  • ⚠️ Un patrón que no compila se avisa al momento
  • El código generado no cambia con el idioma de la interfaz
  • Todo se calcula localmente

Cómo se usa

  1. Escribe una expresión regular (sin las barras de los extremos)
  2. Elige el lenguaje de destino; añade modificadores y un reemplazo si hace falta
  3. Aparecen al momento cuatro fragmentos para ese lenguaje
  4. Antes de copiar, mira la fila «dentro de un literal de cadena»: ahí es donde se comete el error

Preguntas frecuentes

¿Por qué "\d" no funciona en JavaScript?
Porque un escape inválido dentro de una cadena se descarta en silencio: `"\d"` en JS es solo `"d"`, así que tu patrón acaba coincidiendo con la letra d. Es el tipo de fallo más difícil de encontrar: ni error ni aviso, simplemente nunca coincide. Dos arreglos: escribir `"\\d"` (duplicado) o usar un literal de regex `/\d/` (sin duplicar dentro de un literal, que es lo que hacen los fragmentos de JavaScript de aquí). Las cadenas entre comillas dobles de Java y C# se comportan igual, salvo que fallan en tiempo de compilación, lo que es más seguro.
¿Por qué no hay que duplicar en una cadena PHP entre comillas simples?
Porque solo `\\` y `\'` son secuencias de escape en una cadena PHP entre comillas simples; cualquier otra barra invertida se conserva tal cual. Así que el `\d` de `'/\d/'` llega intacto al motor de regex. Las cadenas PHP entre comillas dobles, en cambio, tratan `\d` como escape (el resultado sigue siendo d, pero se emite un aviso), así que ahí sí hay que duplicar. Dos reglas de comillas en un mismo lenguaje es justo por lo que esta herramienta da fragmentos por lenguaje.
¿Puedo pegar esto directamente en un proyecto?
Sí: los fragmentos están completos, con el import/using y las declaraciones de variables. Un par de cosas son tuyas: el nombre de la variable (`text` es tu propia cadena) y la sintaxis de la referencia de grupo en un reemplazo (Python usa `\1`, Go `$1` o la más segura `${1}`, casi todos los demás `$1`). Ten en cuenta también que solo se traducen los modificadores compartidos (i / m / s): `g` es una idea propia de JavaScript, y otros lenguajes expresan «seguir buscando coincidencias» con un bucle, por lo que el fragmento de extraer todas en Java es `while (matcher.find())`. El modificador `y` (pegajoso) también es exclusivo de JavaScript, y al elegirlo se avisa de que se ignora.

Herramientas relacionadas