我嘗試調試腳本,並存在一定的正則表達式,我要檢查。 (正則表達式被傳遞到我的程序從另一個腳本參數,所以我不能手動只是仰望正則表達式)。在調試過程中,我發現有問題的正則表達式被加載到內存中,所以我看到類似如何訪問一個對象,只知道這是指它的內存地址,而不是變量?
<_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