0

Python では、事前にデータをフォーマットせずに、単語のすべての大文字と小文字の組み合わせに一致する正規表現を作成するにはどうすればよいですか。たとえば、単語名に一致するファイル内の行を一致させたいとしますが、大文字になっています。つまり、名前は次のいずれかのようになります

Name
nAMe
NAme

4

3 に答える 3

4

re.IGNORECASEmatch、find、または search を呼び出すときは、必ずオプションを渡してください。

あなたの例では、次のようになります。

import re
re.search('name', 'Name', re.IGNORECASE)
re.search('name', 'nAMe', re.IGNORECASE)
re.search('name', 'NAme', re.IGNORECASE)
于 2013-03-06T00:07:13.930 に答える
1

python re モジュールにはフラグがありre.IGNORECASE、探しているものである必要があります。

re.IGNORECASE

大文字と小文字を区別しない一致を実行します。[AZ] のような表現も小文字に一致します。これは現在のロケールの影響を受けません。

http://docs.python.org/2/library/re.html

于 2013-03-06T00:09:36.820 に答える
0

を使用re.compileしない場合はre.IGNORECASE、次の方法で実行できます。

string_of_pattern = r'(?i)name' # i means ignore case

これは、文字列を渡す必要がある場合に便利です。ドキュメントはここにあります:

(?iLmsux)

(セット 'i'、'L'、'm'、's'、'u'、'x' からの 1 つまたは複数の文字。) グループは空の文字列に一致します。文字は、対応するフラグを設定します: re.I (大文字と小文字を区別しない)、re.L (ロケール依存)、re.M (複数行)、re.S (ドットはすべてに一致)、re.U (Unicode 依存)、およびre.X (詳細)、正規表現全体。(フラグについては、モジュールの内容で説明します。)これは、フラグ引数を re.compile() 関数に渡す代わりに、正規表現の一部としてフラグを含めたい場合に便利です。

(?x) フラグは式の解析方法を変更することに注意してください。式文字列の最初か、1 つ以上の空白文字の後に使用する必要があります。フラグの前に空白以外の文字がある場合、結果は未定義です。

于 2016-05-02T23:32:45.717 に答える