¿Hay alguna manera de descompilar una expresión regular una vez compilada?¿Cómo descompilar una expresión regular?
15
A
Respuesta
34
Los objetos de expresión regular compilados tienen un atributo de "patrón" que proporciona el patrón de texto original.
>>> import re
>>> regex = re.compile('foo (?:bar)*')
>>> regex.pattern
'foo (?:bar)*'
+6
Wow genial, ¿por qué no puedo verlo si hago un dir (regex)? Traté de hacer una introspección, pero no puedo encontrar de dónde viene esta propiedad ... – nabucosound
8
r = re.compile('some[pattern]');
print r.pattern
Cuestiones relacionadas
- 1. ¿Expresión regular para encontrar una expresión regular?
- 2. ¿Cómo validar una expresión regular?
- 3. ¿Hay una expresión regular para detectar una expresión regular válida?
- 4. Comprueba si una expresión regular cubre otra expresión regular
- 5. expresión regular "contiene" otra expresión regular
- 6. Una expresión regular rápida necesaria
- 7. Simplifica una expresión regular compleja
- 8. ¿Cómo puedo generar texto que coincida con una expresión regular de una expresión regular?
- 9. Cómo validar una expresión regular con PHP
- 10. ¿Cómo funciona esta expresión regular?
- 11. Expresión regular: rango numérico
- 12. Interpolando una cadena en una expresión regular
- 13. Expresión regular opuesta
- 14. Expresión regular [Cualquier número]
- 15. c expresión regular howto
- 16. expresión regular lookahead negativo
- 17. Hacer una expresión regular de JavaScript equivalente a una expresión regular PHP
- 18. R- cuestión expresión regular
- 19. expresión regular sin caracteres
- 20. Expresión regular de una palabra determinada
- 21. La construcción de una expresión regular Compositor
- 22. Expresión regular al inglés
- 23. ¿Cómo relacionas una o dos palabras en una expresión regular?
- 24. ¿Cómo usar una variable dentro de una expresión regular?
- 25. Emacs: cómo reemplazar una cadena utilizando una expresión regular?
- 26. ¿Cómo puedo unir una cadena completa con una expresión regular?
- 27. Email expresión regular
- 28. Rompecabezas de expresión regular
- 29. Expresión regular reemplazar
- 30. expresión regular en iOS
¿Para qué fin? Python se basa en la fuente, por lo que siempre debe tener acceso a la expresión regular original. Incluso si intenta realizar una ingeniería inversa de los archivos .pyc de otra persona, sería más fácil descompilar el código del objeto python para obtener la cadena, en lugar de descompilar la expresión regular. El único uso posible que se me ocurre es tratar de aplicar ingeniería inversa a una expresión regular compilada en escabeche ... –
Sería interesante saber por qué quieres hacer esto? – deadcyclo