Regex y coincidencia de patrones

comparar motores regexcon PCRE2 y RE2 reales

Elige un motor implementado, escribe el patrón y el texto y ejecuta la prueba local.

comparar motores regex

Patrón

Escribe solo el patrón, sin barras /. RE2 usa Unicode internamente.

Texto de prueba

Resultado

Escribe o ejecuta una prueba manual.

Patrón y texto se procesan en un Worker local del navegador, sin subirlos a un servidor.

Opciones

Escribe o ejecuta una prueba manual.

Matriz de capacidades

Solo PCRE2 y RE2 se ejecutan aquí. Las demás filas son referencias.

DestinoEjecuciónLookbehindReferencia inversaLímite
PCRE2EjecutadoSíSíPCRE2 WASM; API PHP aparte.
RE2EjecutadoNoNoRE2 WASM; no es Go ni Rust.
PHP / PCRE2Solo núcleo PCRE2SíSíPHP preg_* añade delimitadores y retornos.
JavaSolo referenciaSíSíNo hay Java en esta página.
GoSolo referenciaNoNoGo regexp tiene otra implementación.
RustSolo referenciaNoNoRust regex tiene otra implementación.
.NETSolo referenciaSíSíNo hay .NET en esta página.

Si un patrón de PHP pasa a un servicio Go, una coincidencia de JavaScript no demuestra que funcione allí. Comparar motores regex conserva el texto y revela la compilación real.

Un probador de regex que usa JavaScript no valida necesariamente regex PCRE2 ni regex de Go. Las expresiones regulares Java pueden compartir símbolos pero exigen su propio motor.

Por qué comparar motores regex

El mismo ejemplo muestra respuestas de compilación distintas.

Motores reales, nombres exactos

Comparar motores regex exige más que cambiar una etiqueta. PCRE2 acepta lookbehind y RE2 devuelve un error de sintaxis con el mismo patrón.

PCRE2 resalta una coincidencia mientras RE2 muestra un error para el mismo patrón abstracto.

Las salidas antiguas quedan bloqueadas

Si cambia el motor, patrón, texto u opción, copiar y descargar se desactivan hasta volver a ejecutar.

Tras cambiar la entrada, el informe anterior se atenúa y la exportación queda cerrada.

Comprobar diferencias sin falsos positivos

01

Escribir el cuerpo del patrón

Usa (?<=a)b sin barras delimitadoras. Un ejemplo muestra qué campos reemplazará y permite deshacer una aplicación.

  • Un patrón vacío solo se evalúa cuando inicias la prueba.
02

Escoger el motor disponible

PCRE2 es el valor inicial; RE2 usa otro módulo WASM. i y m empiezan desactivadas.

  • No hay ejecución automática; Ctrl/Cmd+Enter inicia la prueba.
03

Leer índices y capturas

Los índices empiezan en cero y cuentan unidades UTF-16; el final queda fuera. La vista añade 50 filas y el JSON conserva todo resultado correcto.

  • Si se supera el tiempo, no se exporta un resultado parcial.

Datos que ofrece cada ejecución

Errores de compilación reales

PCRE2 admite lookbehind y referencias inversas; RE2 los rechaza sin recurrir a JavaScript de forma oculta.

Grupos y posiciones Unicode

Las capturas numeradas y con nombre aparecen junto a cada coincidencia; los índices RE2 se convierten a UTF-16 tras los emoji.

Límites visibles

La prueba corre en un Worker que puedes detener; el plazo es de dos segundos y los tamaños excesivos invalidan todo.

Alcance y límites del resultado

PCRE2 no es todo PHP
Se ejecuta el núcleo PCRE2, no los delimitadores ni el formato de respuesta de preg_match.
RE2 no equivale a Go o Rust
Sus bibliotecas comparten parte de la sintaxis, no la implementación. Esas filas son referencias.
Solo busca coincidencias
No hay reemplazo, extracción ni división porque los motores usan reglas distintas para esas operaciones.
Sin resultados recortados
Límites: texto 100000 unidades UTF-16, patrón 2000, coincidencias 1000, reporte 2000000 y tiempo dos segundos.

Preguntas al comparar motores regex

¿Qué motor de regex utiliza PHP?

Al comparar motores regex se usa PCRE2 por defecto. PHP se basa en PCRE2, pero esta página no implementa toda su función preg_match.

¿Por qué una expresión funciona en JavaScript pero no en Go?

Una expresión válida en JavaScript puede contener lookbehind que RE2 rechaza. Comprueba finalmente en regexp de Go.

¿Go admite lookbehind?

No. RE2 muestra su error de sintaxis y la página no lo sustituye por otro motor.

¿Son compatibles las expresiones de Java y PCRE2?

No siempre. Unicode, modificadores y grupos pueden cambiar; verifica el patrón con la biblioteca de destino.

¿Cómo puedo ver los grupos de captura de una expresión?

Solo PCRE2 y RE2 se ejecutan localmente. Java y .NET están en la tabla como referencia.

¿Tienes otra duda?

Empieza a comparar motores regex

Carga un ejemplo de diferencia y prueba el mismo texto en PCRE2 y después en RE2.

El patrón y el texto permanecen en el navegador sin envíos automáticos.