2011-09-13 26 views
6

私は、私は今、私はUnicode文字列に対して同じことをしたいマッチング大文字と小文字を区別Unicode文字列

re.compile(r"[a-z][A-Z]") 

ような何かを行うことができ、大文字に続いて小文字を一致させたいとしますつまり、 'aÅ'や 'yÜ'のようなものにマッチします。

re.compile(r"[a-z][A-Z]", re.UNICODE) 

をしようとしましたが、それは動作しません。

手がかりはありますか?

答えて

6

現在の実装では\p{Lu}\p{Ll}のようなUnicodeプロパティショートカットはサポートされていないため、これはPython正規表現では難しいです。

[A-Za-z]はもちろん、Unicodeオプションが設定されているかどうかにかかわらず、ASCII文字にのみ一致します。 reモジュールを更新(またはあなたが現在開発中のregex packageをインストール)されるまで

だから、あなたは(文字列を反復処理し、文字の上にchar.islower()/char.isupper()を行う)プログラムでそれを行う必要がある、またはすべてのUnicodeコードを指定のいずれか手作りのポイントは、おそらく努力する価値がありません...

+0

これは役に立ちました。私はデンマークの手紙に対処するだけです。だから、 'æøå'と 'ÆØÅ'を追加するとOKかもしれません。 – repoman

関連する問題