我尝试调试脚本,并存在一定的正则表达式,我要检查。 (正则表达式被传递到我的程序从另一个脚本参数,所以我不能手动只是仰望正则表达式)。在调试过程中,我发现有问题的正则表达式被加载到内存中,所以我看到类似如何访问一个对象,只知道这是指它的内存地址,而不是变量?
<_sre.SRE_Pattern object at 0x000000000DB6E5D0>
我要访问regex对象,所以我可以清楚地看到它在做什么,但我似乎无法找到一种方法在python访问内存。有谁知道如何做到这一点?
我尝试调试脚本,并存在一定的正则表达式,我要检查。 (正则表达式被传递到我的程序从另一个脚本参数,所以我不能手动只是仰望正则表达式)。在调试过程中,我发现有问题的正则表达式被加载到内存中,所以我看到类似如何访问一个对象,只知道这是指它的内存地址,而不是变量?
<_sre.SRE_Pattern object at 0x000000000DB6E5D0>
我要访问regex对象,所以我可以清楚地看到它在做什么,但我似乎无法找到一种方法在python访问内存。有谁知道如何做到这一点?
它看起来像你想直接打印regex对象,沿着这些线路:
>>> import re
>>> p = re.compile('my regex')
>>> print p
_sre.SRE_Pattern object at 0x02274380
你可以简单地参考图案p.pattern
:
>>> p.pattern
'my regex'
您可以访问正则表达式从pattern
属性编译模式:
>>> import re
>>> re.compile(r'^(.*)$')
>>> r = re.compile(r'^(.*)$')
>>> r
<_sre.SRE_Pattern object at 0x7fa384ce5918>
>>> r.pattern
'^(.*)$'
一切都在一个脚本被加载到内存中,你正在做一个毫无意义的区别。你的问题应该是“我如何访问一个对象,只知道它的内存地址而不知道引用它的变量?” – Barmar 2014-11-02 07:04:22