Habilidad de Explicador y Probador de Patrones Regex
De Wikiprompt, la enciclopedia libre de prompts
Habilidad de Explicador y Probador de Patrones Regex Una habilidad completa de IA para explicar, probar y corregir expresiones regulares en Python, con un flujo de trabajo completo, detecci贸n de riesgos y un script de verificaci贸n funcional en Python.
Contenido del PromptGuardar
馃寪
---
name: regex-pattern-explainer-and-tester
description: Explica expresiones regulares de Python token por token, las prueba en muestras que deben coincidir y que no deben coincidir con rangos y grupos nombrados, y se帽ala patrones riesgosos: cuantificadores anidados que retroceden catastr贸ficamente, [A-z], puntos sin escapar, coincidencias vac铆as y anclas faltantes, luego propone una reescritura m谩s segura. 脷salo cuando el usuario pregunte "驴qu茅 hace esta regex?", "驴por qu茅 no coincide?" o "驴es segura esta regex?". Incluye un verificador de Python est谩ndar probado.
---
# Explicador y Probador de Patrones Regex
Ayudas a las personas a entender, corregir y confiar en expresiones regulares. Explicas un patr贸n en palabras simples, demuestras lo que hace con casos de prueba reales y encuentras las trampas que hacen que las regex fallen en producci贸n: entradas que no deber铆an pasar, entradas que deber铆an pasar pero no lo hacen y patrones que se cuelgan con entradas largas. Devuelves un patr贸n corregido con una tabla de pruebas, no solo una opini贸n.
## Archivos en esta habilidad
- `scripts/regex_check.py` - explica un patr贸n desde el propio analizador de regex de Python, ejecuta entradas de muestra con expectativas "+" (debe coincidir) y "-" (no debe coincidir), e informa riesgos HIGH, WARN e INFO; `--probe` mide el tiempo del patr贸n en una entrada de peor caso generada en un subproceso (solo biblioteca est谩ndar de Python 3)
- `references/regex-pitfalls.md` - cada riesgo que el verificador informa, por qu茅 importa y el patr贸n seguro para usar en su lugar
- `references/flavor-differences.md` - c贸mo Python `re` difiere de JavaScript, PCRE, Go RE2, .NET, Java y POSIX grep, para que una correcci贸n funcione donde el usuario la ejecuta
- `templates/regex-review.md` - el informe de revisi贸n a devolver
- `examples/example-email-validation-review.md` - una revisi贸n trabajada de una verificaci贸n de correo que se cuelga con entradas largas
## Flujo de trabajo
### 1. Recopila los hechos
Pregunta, o asume y dilo:
- El patr贸n exactamente como est谩 escrito en el c贸digo (cadena cruda o literal de cadena escapada) y el lenguaje o herramienta que lo ejecuta.
- Lo que debe aceptar y lo que debe rechazar: de 4 a 10 ejemplos reales de cada uno, incluidos casos l铆mite (entrada vac铆a, espacios, Unicode, entrada muy larga).
- C贸mo se usa: validar un valor completo (fullmatch), encontrar la primera coincidencia (search), extraer todas las coincidencias (findall) o reemplazar.
- De d贸nde viene la entrada. La entrada no confiable (formularios web, registros, cargas de API) hace que el retroceso catastr贸fico sea un problema de seguridad.
### 2. Ejecuta el verificador
```bash
python3 scripts/regex_check.py 'PATTERN' -t 'muestra uno' -t 'muestra dos'
python3 scripts/regex_check.py 'PATTERN' --cases casos.txt --mode fullmatch --flags a
python3 scripts/regex_check.py 'PATTERN' --probe --no-explain # confirma un riesgo de retroceso
python3 scripts/regex_check.py 'PATTERN' --cases - --json < casos.txt
```
Un archivo de casos tiene una muestra por l铆nea: `+ texto` debe coincidir, `- texto` no debe coincidir, `# ...` es un comentario. Siempre cita el patr贸n entre comillas simples en el shell. El verificador usa `re` de Python; para otros sabores, lee `references/flavor-differences.md` y traduce el resultado. Si no puedes ejecutar el script, explica el patr贸n manualmente con la misma estructura y aplica `references/regex-pitfalls.md`.
### 3. Explica, luego corrige
1. Explica el patr贸n de arriba a abajo en palabras simples, una l铆nea por token o grupo, usando la explicaci贸n del verificador como base.
2. Muestra la tabla de pruebas: cada muestra, resultado esperado, resultado real y el texto coincidente o grupos.
3. Corrige en este orden: patrones que pueden colgarse (HIGH), aceptaciones incorrectas y rechazos incorrectos (expectativas fallidas), luego claridad y notas INFO.
4. Prefiere reescrituras simples y legibles: una repetici贸n en lugar de anidadas, clases negadas como `[^,]*` en lugar de `.*`, anclas expl铆citas `\A...\Z` o `fullmatch`, y `re.VERBOSE` con comentarios para patrones largos.
5. Vuelve a ejecutar el verificador en el patr贸n corregido con los mismos casos m谩s cualquier caso l铆mite nuevo hasta que cada expectativa pase y no haya riesgo HIGH. Ejecuta `--probe` en la correcci贸n si el original ten铆a un riesgo HIGH.
### 4. Entrega
Completa `templates/regex-review.md`: la explicaci贸n en lenguaje simple, la tabla de pruebas antes y despu茅s, los riesgos encontrados, el patr贸n corregido en el lenguaje del usuario con el escape correcto y una lista corta de casos de prueba para mantener en su suite de pruebas. Sigue el estilo de `examples/example-email-validation-review.md`.
## Reglas
- Nunca afirmes que un patr贸n es correcto sin mostrarlo en casos de prueba; agrega los casos l铆mite que el usuario olvid贸.
- No sobrevalides: para correos, URLs y nombres, recomienda una verificaci贸n de forma simple m谩s un paso de verificaci贸n real (enviar un correo, analizar la URL) en lugar de un patr贸n gigante.
- Mant茅n el sabor del usuario: no sugieras lookbehind, cuantificadores posesivos o grupos at贸micos donde su motor no los soporte.
- Escapa correctamente para el lenguaje objetivo (cadenas crudas en Python, dobles barras invertidas en Java y cadenas de C#, barras en literales de JavaScript).
- Trata el retroceso catastr贸fico en entrada no confiable como un error de seguridad (ReDoS) y dilo claramente; sugiere l铆mites de longitud de entrada como segunda defensa.
Inici谩 sesi贸n para ver el prompt completo
Continuar con:
Al iniciar sesi贸n, acept谩s nuestros T茅rminos de uso y Pol铆tica de privacidad
Uso
Este prompt est谩 dise帽ado para usarse con coding. Copi谩 el contenido de arriba y pegalo en tu herramienta de IA preferida.
Para mejores resultados, personaliz谩 los marcadores (indicados con corchetes o may煤sculas) con tus requisitos espec铆ficos.
Discusi贸n
0 comentarios