2017-02-09 92 views
-2

首先說我已經閱讀了有關正則表達式的python文檔,我無法設法重寫我的正則表達式以便與python re模塊一起使用。 所以,這是一個基本的正則表達式:python正則表達式無法識別模式

\_*([A-Z][A-Z]+\_*[A-Z|0-9|\_]*)+\_* 

我知道這是確定我的目的,因爲與它的egrep完全匹配我想要的,但蟒蛇繼續爲每個分析字符串返回None。

編輯 預期輸出是一切開始有或無_,它是所有大寫,從信後可能是可能是字母或數字,也_:XXX,XX_X,_xxx,_XX_XXXX_ XX_ 其中輸入一個帶小寫字母和空格的字符串。

+0

添加你認爲應該和不應該匹配的字符串 – dawg

+0

什麼是匹配正則表達式的輸入字符串?預期產出是多少? –

+1

'[A-Z | 0-9 | \ _]'是可疑的:修改在字符類中不起作用。它只匹配'[]'中的單個字符 – dawg

回答

1

首先,你的正則表達式可以提高,我可以建議你更多的東西一樣_?[A-Z][A-Z0-9_]+

正如rugie說,你不需要逃避_,和[A-Z|0-9|\_]將沒有真正的工作,只要你想(請參閱dawg的評論)。

次要的,你使用了re模塊的哪些功能?如果它是re.match,它可能不起作用,因爲re.match從字符串的開頭搜索。 你想知道你的模式是否在字符串中,或​​者捕獲這個字符串中的所有模式?第一個可以使用re.search,第二個可以使用re.findall

告訴我們您試過的東西,我們將能夠爲您提供更多幫助。

+0

我設法使用findall並重寫更好的(pythonic)正則表達式,現在我能夠找到我尋找!謝謝你,嗨! –

+0

很高興知道:) – Liad