正規表現でドイツ語のウムラウトとマッチングできないのに驚いています。私はいくつかのアプローチを試しました。ロケールの設定に最も関わっていましたが、これまでは役に立たなかったのです。これらのバージョンの正規表現でのUmlauts(ロケール経由)
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)
なし\w+
で正しくウムラウト-U(U)と一致しません。また、re.L
フラグを削除するか、パターン文字列の先頭にu
という接頭辞を付けて(ユニコードにする)、私には役に立たなかった。
アイデア?フラグre.L
はどのように正しく使用されていますか?
を使用すると、いや、私は(MEAのculpa)なかった、私は知りませんでしたその旗の存在、それは私の問題を解決する!ありがとう、私はすぐに受け入れられた答えとしてこれをフラグする(より精巧な答えがロケールフラグを使用している私の試行が期待通りに機能しなかった理由を説明しない限り) – Alfe
説明を与えるスレッドへのリンクを与えるために編集 –
Python 2を使用している場合は、Unicode文字列(u "...")を使用してください。スクリプトUTF-8を作成することはお勧めです。 – MRAB