2009-09-22 120 views
15

有没有什么办法可以反编译正则表达式?如何反编译正则表达式?

+2

为了什么目的? Python是基于源代码的,所以你应该总是能够访问原始的正则表达式。即使你试图对某人的.pyc文件进行反向工程,反编译Python对象代码以获取字符串也会更容易,而不是反编译正则表达式。我能想到的唯一可能的用途是尝试对酸洗的编译正则表达式进行逆向工程... – 2009-09-22 15:13:30

+0

知道为什么要这样做会很有趣? – deadcyclo 2009-09-22 17:32:38

回答

34

编译正则表达式对象有一个“模式”属性,它给出原始文本模式。

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

哇,太棒了,为什么我不能看到它,如果我做一个DIR(正则表达式)?我试图反思,但无法找到这个属性来自哪里... – nabucosound 2009-09-22 16:14:46

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