正規表現が機能しないのはなぜですか?私はPython 2.7.5を使用する必要があります。Python 2.7.5でUmlautを使用した正規表現
pattern = re.compile('\d{4};[a-zA-ZäöüÄÖÜß. -]+;.+')
私はcsvファイルを読んでいる: これが私の表現です。最初は;
まで4桁で、2番目の;
はa-Z、ウムラウト、.
またはスペースまたは.
の文字でなければなりません.2番目の;
の後には任意の文字を入れることができます。
今、私の問題:äöü
またはß
のようなウムラウトは受け付けません。私がウムラウトを指定していない3番目の「部分」では、ウムラウトが発生してもそれは問題ありません。
私は# -*- coding: utf-8 -*-
をスクリプトの冒頭に付けました。 UTF-8にエンコードすることにより
ありがとうございました!私は今この問題で数日間苦労しています。 –
は 'ru '\ d {4} ...''(生のunicode文字列のため)ではありませんか? – thebjorn
@thebjorn:そうではありません。生の文字列リテラルは、同じ結果に対して異なる構文にすぎません。この場合、 '\ d'は結果の値に' \ d'のままです。 Python 3には 'ru'というプリフィックスはありません。したがって、多言語コード(Python 2とPythonで実行する必要があるコード)では、その接頭辞を使用しない傾向があります。 –