18

.net\p{L}では任意の文字に一致させることができますが、Python で同じことを行うにはどうすればよいですか? つまり、大文字、小文字、およびアクセント付きの文字に一致させたいのです。

4

2 に答える 2

31

PythonのreモジュールはまだUnicodeプロパティをサポートしていません。ただし、フラグを使用して正規表現をコンパイルするre.UNICODEと、文字クラスの省略形\wもUnicode文字と一致します。

は数字にも一致するため\w、アンダースコアとともに、数字を文字クラスから減算する必要があります。

[^\W\d_]

任意のUnicode文字に一致します。

>>> import re
>>> r = re.compile(r'[^\W\d_]', re.U)
>>> r.match('x')
<_sre.SRE_Match object at 0x0000000001DBCF38>
>>> r.match(u'é')
<_sre.SRE_Match object at 0x0000000002253030>
于 2011-06-11T07:09:36.893 に答える