我很驚訝我無法在正則表達式中匹配德語變音符號。我嘗試了幾種方法,大部分都涉及設置語言環境,但到目前爲止無濟於事。正則表達式匹配中的變音器(通過語言環境?)
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
re.findall(r'\w+', 'abc def g\xfci jkl', re.L)
re.findall(r'\w+', 'abc def g\xc3\xbci jkl', re.L)
re.findall(r'\w+', 'abc def güi jkl', re.L)
re.findall(r'\w+', u'abc def güi jkl', re.L)
這些版本都沒有變音-U(U)提供\w+
正確匹配。還刪除re.L
標誌或用u
(使其爲unicode)模式字符串前綴不幫助我。
任何想法?國旗re.L
如何正確使用?
不,我沒有(過失),我不知道的該旗的存在,它解決了我的問題!謝謝,我會盡快將此標記爲接受的答案(除非更詳細的答案也將解釋爲什麼我的試用僅使用語言環境標誌未按預期工作)。 – Alfe
編輯以提供鏈接以提供一些解釋 –
如果您使用Python 2,請使用Unicode字符串(u「...」)。製作腳本UTF-8是一個好主意。忘記LOCALE標誌,將其視爲僅適用於傳統的東西(當你沒有別的選擇) – MRAB