¿Odias los anuncios? Ir Sin publicidad Hoy

Convertidor de Sabores de Expresiones Regulares (PCRE / JS / Python / Go)

Desarrollador
ANUNCIO · ¿ELIMINAR?

Panel de prueba

Referencia de sintaxis

ANUNCIO · ¿ELIMINAR?

Guía

Convertidor de flaves de expresiones regulares (PCRE / JS / Python / Go)

Convertidor de flaves de expresiones regulares

Convierte expresiones regulares entre diferentes versiones de lenguajes de programación: PCRE (PHP), JavaScript, Python, Go, Java y Ruby. Convierte automáticamente grupos nombrados, banderas, referencias de retorno y otras diferencias de sintaxis. Destaca características incompatibles con advertencias claras. Incluye un panel de prueba para validar tu expresión regular convertida contra cadenas de ejemplo.

Cómo Usar

Introduce tu patrón de expresión regular, selecciona el flavor de origen (el lenguaje en el que está escrita) y el flavor de destino (el lenguaje al que deseas convertirlo). La expresión regular convertida aparece de inmediato con las banderas traducidas. Revisa los comentarios de conversión para ver los cambios realizados y advertencias sobre características no soportadas. Utiliza el panel de prueba para validar la expresión convertida contra texto de ejemplo.

Características

  • 6 flaves de expresiones regulares — PCRE (PHP), JavaScript (ES2018+), Python (módulo re), Go (regexp), Java (java.util.regex) y Ruby. Puedes convertir entre cualquier par.
  • Conversión de grupos nombrados — Convierte automáticamente entre (?P…) (PCRE/Python/Go) y (?…) (JS/Java/Ruby).
  • Traducción de banderas — Convierte banderas entre flaves: /gi (JS) ↔ re.IGNORECASE (Python) ↔ (?i) en línea (PCRE/Go) ↔ Pattern.CASE_INSENSITIVE (Java).
  • Conversión de referencias de retorno — Convierte referencias de retorno nombradas: (?P=name) ↔ \k entre flaves.
  • Advertencias de incompatibilidad — Alertas con colores: verde para conversiones limpias, amarillo para cambios de sintaxis, rojo para características no soportadas (por ejemplo, Go no soporta lookbehind, JS no soporta grupos atómicos).
  • Panel de prueba — Prueba la expresión regular convertida contra cadenas de ejemplo. Muestra coincidencias, grupos y conteo de coincidencias usando el motor de expresiones regulares de JavaScript.
  • Referencia de sintaxis — Tabla resumida y desplegable que muestra las diferencias clave entre todos los flaves: grupos nombrados, lookahead/lookbehind, banderas, clases de caracteres, grupos atómicos, soporte de Unicode.
  • Conversión automática — Los resultados se actualizan de inmediato mientras escribes o cambias de flavor.

¿Qué se convierte?

Grupos nombrados: Diferencias de sintaxis entre (?P) y (?).
Referencias de retorno nombradas: (?P=name) ↔ \k ↔ \g{name}.
Banderas: Sintaxis en línea (?imsx), sufijo /gi, y constantes específicas del lenguaje.
Afirmaciones de lookbehind: Soportadas en PCRE/JS/Java, limitadas en Python/Ruby, no soportadas en Go.
Grupos atómicos: (?>…) — Soportados en PCRE/Java/Ruby; advertidos en JS/Python/Go.
Cuantificadores posesivos: a++ — Soportados en PCRE/Java/Ruby.
Clases de caracteres: \R, \h, \v (específicos de PCRE) marcados para otros flaves.
Comentarios: (?#…) — solo en PCRE/Python.
Condicionales: (?(cond)yes|no) — solo en PCRE.

ANUNCIO · ¿ELIMINAR?

¿Por qué difieren los flaves de expresiones regulares entre lenguajes?

Las implementaciones de expresiones regulares evolucionaron de forma independiente en diferentes lenguajes de programación. El motor de expresiones regulares de Perl (PCRE) se convirtió en el más completo, añadiendo grupos nombrados, lookbehind, grupos atómicos y otras características avanzadas. Otros lenguajes adoptaron subconjuntos: JavaScript tenía inicialmente un regex básico y posteriormente añadió características (grupos nombrados en ES2018, lookbehind en ES2018). El módulo re de Python utiliza la sintaxis (?P) heredada de una propuesta temprana. Go eligió deliberadamente un motor de expresiones regulares más simple (RE2) que garantiza tiempo lineal de ejecución, pero sacrifica características como lookbehind. Cada lenguaje hizo diferentes compromisos entre potencia y rendimiento.

¿Qué características de expresiones regulares no se pueden convertir?

Algunas características existen en solo un o dos flaves y no tienen equivalente en otros. Las afirmaciones de lookbehind no existen en el motor RE2 de Go — no hay forma de trabajararlas, solo se debe rediseñar la expresión. Los grupos atómicos y los cuantificadores posesivos (PCRE/Java/Ruby) no tienen equivalente directo en JavaScript, Python o Go. Las clases de caracteres específicas de PCRE como \R (cualquier salto de línea), \h (espacios en blanco horizontales) y \v (espacios en blanco verticales) deben expandirse a versiones equivalentes en clases de caracteres. Las condiciones (?(cond)yes|no) son exclusivas de PCRE. Esta herramienta te advierte sobre estas incompatibilidades para que sepas qué necesita atención manual.

¿El panel de prueba es preciso para todos los flaves?

El panel de prueba utiliza el motor de expresiones regulares nativo de JavaScript, por lo que prueba correctamente el comportamiento de expresiones regulares en JavaScript. Para otros flaves de destino, el panel proporciona una aproximación razonable, aunque puede diferir en casos extremos, especialmente en el manejo de Unicode, comportamiento de salto de línea y características que JavaScript no soporta (como grupos atómicos). Para uso en producción, siempre prueba tu expresión regular convertida en el lenguaje objetivo. El panel de prueba es más útil para validar rápidamente coincidencias básicas.

¿Diferencias entre PCRE y JavaScript?

PCRE (Regular Expressions Compatible con Perl, usado en PHP) es el flavor más completo: soporta grupos nombrados con (?P), lookbehind de longitud variable, grupos atómicos (?>…), cuantificadores posesivos (a++), patrones condicionales, patrones recursivos y ámbito de banderas en línea (?i:…). JavaScript regex es más simple: los grupos nombrados usan (?), lookbehind fue añadido en ES2018, y no hay soporte para grupos atómicos, cuantificadores posesivos ni condicionales. PCRE usa la sintaxis /pattern/flags como JavaScript, pero soporta más banderas (x para modo detallado, s para DOTALL). Convertir de PCRE a JS a menudo requiere eliminar características avanzadas.

¿Quieres eliminar publicidad? Adiós publicidad hoy

Instalar extensiones

Agregue herramientas IO a su navegador favorito para obtener acceso instantáneo y búsquedas más rápidas

añadir Extensión de Chrome añadir Extensión de borde añadir Extensión de Firefox añadir Extensión de Opera

¡El marcador ha llegado!

Marcador es una forma divertida de llevar un registro de tus juegos, todos los datos se almacenan en tu navegador. ¡Próximamente habrá más funciones!

ANUNCIO · ¿ELIMINAR?
ANUNCIO · ¿ELIMINAR?
ANUNCIO · ¿ELIMINAR?

Noticias Aspectos técnicos clave

Involucrarse

Ayúdanos a seguir brindando valiosas herramientas gratuitas

Invítame a un café
ANUNCIO · ¿ELIMINAR?