2014-11-02 73 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 
'^(.*)$' 
相關問題