2009-09-22 8 views
15

Existe-t-il un moyen de décompiler une expression régulière une fois compilée?Comment décompiler une regex?

+2

À quelle fin? Python est basé sur la source, donc vous devriez toujours avoir accès à l'expression régulière d'origine. Même si vous essayez de désosser les fichiers .pyc de quelqu'un, il serait plus facile de décompiler le code de l'objet python pour obtenir la chaîne, plutôt que de décompiler la regex. La seule utilisation possible que je pourrais penser est d'essayer d'inverser une regex compilé mariné ... –

+0

Il serait intéressant de savoir pourquoi vous voulez faire cela? – deadcyclo

Répondre

34

objets d'expression régulière Compilé ont un attribut « modèle » qui donne le modèle de texte original.

>>> import re 
>>> regex = re.compile('foo (?:bar)*') 
>>> regex.pattern 
'foo (?:bar)*' 
+6

Wow super, pourquoi je ne peux pas le voir si je fais un dir (regex) ?? J'ai essayé d'introspecter mais ne peux pas trouver d'où vient cette propriété ... – nabucosound

8
r = re.compile('some[pattern]'); 
print r.pattern 
Questions connexes