re.error se lanza cuando una cadena pasada a una función del módulo re no es una expresión regular válida. El mensaje de error incluye la posición del problema de sintaxis en el patrón, lo que facilita localizarlo y corregirlo.
Por qué ocurre
- •Paréntesis o corchetes sin cerrar en el patrón.
- •Una secuencia de escape inválida como \p o \q que no es un token regex reconocido.
- •Un cuantificador como * o + aplicado a nada (al inicio del patrón).
- •Llaves sin cerrar en un cuantificador de repetición como {3,.
Ejemplos
Código que causa el error
import re
re.compile(r"(unclosed group")Error en la terminal
re.error: missing ), unterminated subpattern at position 0
Cómo solucionarlo
Prueba los patrones regex de forma interactiva con una herramienta como regex101.com antes de incrustarlos en el código. Siempre envuelve re.compile() en un bloque try/except re.error cuando el patrón proviene de la entrada del usuario. Usa cadenas crudas (r'...') para evitar conflictos con escapes de cadenas Python.
Código corregido
import re
try:
pattern = re.compile(r"(closed group)")
match = pattern.search("closed group found")
print(match.group() if match else "no match")
except re.error as e:
print(f"Invalid regex: {e}")Errores relacionados
¿Listo para practicar tu inglés en el trabajo?
Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.
Prueba Lingua-e gratis