這個問題在這里已經有了答案: re.findall 表現得很奇怪 (3 個回答) 昨天關閉。
我剛開始學習 RE,但遇到了一些問題。
我有下面的代碼。
pat2 = re.compile('Nov(ember)?', re.IGNORECASE)
x = pat2.findall('NovNovember')
我得到的輸出是 ['', 'ember]
而不是我所期望的,['Nov', 'November'].
任何人都可以向我解釋一下嗎?
非常感謝你。
uj5u.com熱心網友回復:
當在正則運算式中使用捕獲組時,只有它們的內容回傳re.findall,
使組不被捕獲
(?:)pat2 = re.compile('Nov(?:ember)?', re.IGNORECASE) print(pat2.findall('NovNovember')) # ['Nov', 'November']使用全域一個來進行完整匹配
pat2 = re.compile('(Nov(ember)?)', re.IGNORECASE) print(pat2.findall('NovNovember')) # [('Nov', ''), ('November', 'ember')]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/398906.html
上一篇:用于清理Vim中的Google鏈接的正確正則運算式模式是什么?
下一篇:匹配正則運算式組的總長度
