Regex y coincidencia de patrones

probador de regex Pythoncomprueba el resultado real de re

Escribe un patrón y un texto; ejecuta búsqueda, coincidencia completa o sustitución con el motor de Python.

probador de regex Python

Patrón

Texto de prueba

Resultado

Escribe o ejecuta una prueba manual.

El patrón y el texto se procesan en este navegador. Los archivos de Python se cargan al primer inicio.

Opciones

i, m, s, x y a una vez cada una; sin bandera g de JavaScript.
  • i — Ignorar mayúsculas
  • m — ^ y $ en límites de línea
  • s — El punto incluye saltos de línea
  • x — Permitir espacios y comentarios
  • a — Clases de caracteres ASCII

Entorno Python: se carga en la primera prueba

Límites: patrón 2000, texto 100000 y reemplazo 10000 unidades UTF-16; 10000 coincidencias, un millón de salida y cuatro millones de informe. Se detiene tras dos segundos.

Escribe o ejecuta una prueba manual.

Una expresión puede pasar en un comprobador de JavaScript y fallar en código Python. Este probador de regex Python ejecuta CPython re para que los grupos con nombre, las banderas y las referencias de reemplazo conserven su significado real.

Si necesitas un probador de expresiones regulares, compara finditer, search y fullmatch. Los grupos de captura usan posiciones de puntos de código Unicode; para reemplazar texto en Python se emplea \g<name>, no $1.

Por qué usar este probador de regex Python

Distingue el resultado de cada grupo

El probador de regex Python muestra la coincidencia completa junto a grupos numerados y con nombre. Un grupo que no participó queda en null y (-1, -1); una captura vacía sigue siendo una cadena vacía.

Una coincidencia azul contiene dos capturas de distintos colores conectadas con tarjetas de resultado.

Mira el reemplazo sin tocar la entrada

Con \g<apellido> y \g<nombre>, re.subn reordena campos en una salida aparte. El límite cero reemplaza todas las coincidencias; el texto original permanece disponible para comparar.

Dos segmentos de color invierten su orden en la vista previa derecha mientras el texto original permanece a la izquierda.

Comprueba las diferencias de re antes de copiar

01

Elige el alcance correcto

finditer enumera coincidencias sin solapamiento, search devuelve la primera y fullmatch exige que coincida todo el texto. Aquí no existe la bandera g de JavaScript.

02

Ajusta las banderas y ejecuta

i, m, s, x y a pertenecen a Python re. m modifica ^ y $ en los límites de línea; s permite que el punto abarque saltos. Python se carga al primer inicio manual.

03

Verifica los índices y la vigencia

Los intervalos parten de cero, excluyen el extremo final y cuentan puntos de código Unicode. En A😀B, B empieza en el índice Python 2. Ctrl/Cmd + Intro vuelve a ejecutar.

Qué revela cada ejecución

CPython re auténtico

El probador de regex Python carga Pyodide en un Worker y muestra la versión real de Python. No presenta RegExp de JavaScript con una etiqueta de Python.

Capturas con intervalos exactos

Cada resultado incluye el grupo cero, números, nombres, valores e intervalos. Los índices de Python se convierten a UTF-16 para resaltar bien un texto con emoji.

Sustitución con sintaxis Python

re.subn interpreta \1 y \g<name>. Una plantilla vacía elimina coincidencias; $1 queda como texto literal. El original nunca se sobrescribe.

Exportación íntegra

Solo una ejecución terminada habilita el JSON con patrón, banderas, operación, versión y todas las coincidencias. La salida reemplazada también puede guardarse como texto.

Límites de esta prueba con re

Un motor, una semántica
El probador de regex Python usa CPython re para texto Unicode. No cambia a PCRE2, JavaScript ni al paquete externo regex; sus construcciones pueden comportarse de otro modo.
Ejecución manual
Los patrones costosos comienzan solo al pulsar o usar el atajo. Tras cargar Python, dos segundos de cálculo terminan el Worker; un informe parcial no se presenta como cero coincidencias.
Banderas propias de Python
Se aceptan i, m, s, x y a una sola vez. g, u e y son banderas de JavaScript y no aparecen aquí; finditer controla la búsqueda de todas las coincidencias.
Topes explícitos
Patrón: 2000 unidades UTF-16; texto: 100000; plantilla: 10000. Más de 10000 coincidencias o salidas e informes demasiado grandes invalidan la prueba completa.
Sin código ni fuentes remotas
Solo se ejecutan operaciones fijas de re. No se evalúan programas Python, se importan archivos, se consultan URL ni se generan enlaces con el texto de prueba.
El reemplazo es una vista previa
re.subn produce un texto separado. Ejemplo y Borrar cambian las entradas solo después de confirmar una vista previa; puedes deshacer una vez.

Preguntas del probador de regex Python

¿Por qué un patrón funciona en regex101 y falla en Python?

Revisa el motor elegido en regex101: PCRE2 puede ser el predeterminado. Aquí se usa CPython re y un grupo con nombre se escribe (?P<name>...).

¿Puedo probar un reemplazo con Python re.sub?

Sí. Elige Sustitución e introduce \g<name> o \1. $1 no expande grupos en Python; la salida es una vista previa separada.

¿Puedo ver coincidencias y grupos de Python en línea?

Sí. Las coincidencias se resaltan y se listan valores e intervalos de los grupos. Las coincidencias de ancho cero tienen una marca visible.

¿Por qué .*? puede ser más seguro que .*?

La forma no codiciosa intenta primero tramos cortos; la codiciosa, tramos largos. Ninguna garantiza rapidez. Prueba también casos extremos.

¿En qué se distinguen (...) y (?:...)?

Ambas formas agrupan el patrón, pero solo (...) crea una captura numerada que puede usarse en el reemplazo. (?:...) no ocupa número.

¿Tienes otra duda?

Prueba un caso difícil con el probador de regex Python

Compara un caso positivo con uno negativo y comprueba capturas y versión de Python antes de guardar el informe.