【问题标题】:How to decompile a regex?如何反编译正则表达式?
【发布时间】:2009-09-22 23:12:53
【问题描述】:

有没有什么方法可以反编译正则表达式编译后?

【问题讨论】:

  • 目的是什么? Python 是基于源代码的,因此您应该始终可以访问原始的正则表达式。即使您尝试对某人的 .pyc 文件进行逆向工程,反编译 python 目标代码以获取字符串会比反编译正则表达式更容易。我能想到的唯一可能的用途是尝试对腌制编译的正则表达式进行逆向工程......
  • 知道您为什么要这样做会很有趣?

标签: python regex


【解决方案1】:

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

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

【讨论】:

  • 哇太好了,如果我执行 dir(regex) 为什么我看不到它?我试图反省,但找不到这个属性来自哪里......
【解决方案2】:
r = re.compile('some[pattern]');
print r.pattern

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2013-01-23
    • 2013-08-18
    相关资源
    最近更新 更多