4

re モジュールで名前フィールドを検証しようとしています。

\wなどの非 ASCII 文字には一致しませんà

他の多くの正規表現エンジンでは、解決策は\p{L}だったようですが、これは python ではサポートされていないようです。適切な同等物は何ですか?

アップデート:

\wこれは、このトピックに関する他の質問とは異なります。デフォルトのフラグを使用して取得したものではないユニコードの代替を探しているという点ですre.UNICODE(このフラグは\w数字とアンダースコアも一致させるため)。

4

4 に答える 4

1

UNICODE 修飾子を使用して、文字クラスの Unicode サポートを有効にする必要があると思います。

regexRef = re.compile("\w", re.UNICODE)

これらの非 ASCII 文字の一致に役立つかどうかを確認してください。

于 2013-03-03T19:21:03.317 に答える
1

欲しいものは[^\d\s_]合っていますか?

于 2013-03-06T03:59:00.393 に答える
1

[^\W0-9_]と一緒に使用すると、私にとってはうまくいきますre.UNICODE

于 2013-03-06T08:16:25.143 に答える
0

Unicode 文字列をモジュールに渡し、フラグreを有効にします。例:re.UNICODE

# -*- coding: utf-8 -*-
import re

print(re.findall(ur"\w+", ur"\w does match à.", flags=re.UNICODE))
于 2013-03-03T19:29:03.773 に答える