2014-11-02 42 views
0

我尝试调试脚本,并存在一定的正则表达式,我要检查。 (正则表达式被传递到我的程序从另一个脚本参数,所以我不能手动只是仰望正则表达式)。在调试过程中,我发现有问题的正则表达式被加载到内存中,所以我看到类似如何访问一个对象,只知道这是指它的内存地址,而不是变量?

<_sre.SRE_Pattern object at 0x000000000DB6E5D0> 

我要访问regex对象,所以我可以清楚地看到它在做什么,但我似乎无法找到一种方法在python访问内存。有谁知道如何做到这一点?

+0

一切都在一个脚本被加载到内存中,你正在做一个毫无意义的区别。你的问题应该是“我如何访问一个对象,只知道它的内存地址而不知道引用它的变量?” – Barmar 2014-11-02 07:04:22

回答

1

它看起来像你想直接打印regex对象,沿着这些线路:

>>> import re 
>>> p = re.compile('my regex') 
>>> print p 
_sre.SRE_Pattern object at 0x02274380 

你可以简单地参考图案p.pattern

>>> p.pattern 
'my regex' 

文档:https://docs.python.org/2/library/re.html

0

您可以访问正则表达式从pattern属性编译模式:

>>> import re 
>>> re.compile(r'^(.*)$') 
>>> r = re.compile(r'^(.*)$') 
>>> r 
<_sre.SRE_Pattern object at 0x7fa384ce5918> 
>>> r.pattern 
'^(.*)$' 
相关问题