Pythonの正規表現における修飾子(フラグ)の使い方と機能一覧
Python正規表現の修飾子とは
Pythonのreモジュールでは、正規表現によるパターンマッチングの挙動を制御するために、さまざまな修飾子(フラグ)を指定することができます。これらの修飾子を使うことで、大文字小文字の区別や改行の扱いなど、マッチングの動作を柔軟に変更できます。
以下に、主要な修飾子とその機能を一覧形式で紹介します。
1. re.I(re.IGNORECASE)
大文字と小文字を区別せずにマッチングを行います。英字の大小を無視したい場合に便利です。
2. re.L(re.LOCALE)
現在のロケール設定に従って単語を解釈します。このフラグは、アルファベット系のグループ(\w および \W)の挙動、および単語境界の動作(\b および \B)に影響を与えます。
3. re.M(re.MULTILINE)
$ が行末(文字列の末尾だけでなく各行の末尾)にマッチするようになり、^ も行頭(文字列の先頭だけでなく各行の先頭)にマッチするようになります。複数行のテキストを扱う際に特に有用です。
4. re.S(re.DOTALL)
ピリオド(ドット .)が改行文字を含む任意の文字にマッチするようになります。デフォルトでは . は改行にマッチしませんが、このフラグを指定することで改行も含めてマッチできます。
5. re.U(re.UNICODE)
Unicode文字セットに基づいて文字を解釈します。このフラグは \w、\W、\b、\B の動作に影響します。Python 3ではUnicodeがデフォルトのため、主にPython 2との互換性に関わるフラグです。
6. re.X(re.VERBOSE)
「読みやすい」正規表現構文を許可します。具体的には、空白文字を無視し(文字クラス [] 内またはバックスラッシュでエスケープされた場合を除く)、エスケープされていない # をコメントマーカーとして扱います。複雑な正規表現にコメントを付けて可読性を高めたい場合に役立ちます。
まとめ
これらの修飾子は、単独でも組み合わせても使用できます。例えば re.I | re.M のようにビット演算子 | で組み合わせることで、複数のオプションを同時に適用できます。用途に応じて適切なフラグを選択することで、より効率的かつ正確なテキスト処理が可能になります。
-
【初心者向け】Python正規表現のグループ化の仕組みと使い方を徹底解説
グループ化とは正規表現における「グループ化」とは、パターンの一部を丸括弧 () で囲むことです。これにより、単一の文字だけでなく、グループ全体に対して量指定子(*、+ など)や各種演算子を適用できるようになります。キャプチャグループと後方参照丸括弧には、部分式をひとまとめにする役割に加えて、「キャプチャグループ」を作成する働きもあります。グループ化された部分がマッチした文字列は「後方参照(バックリファレンス)」として保存され、あとから再利用することが可能です。実際の開発では、2つ以上の候補のどれかにマッチする正規表現が必要になる場面が多くあります。また、量指定子を複数の式全体に適用したいケース
-
Pythonの正規表現で任意の1文字にマッチさせる方法
Pythonの正規表現では、特別なメタ文字「.」(ドット)を使用することで、文字列内の任意の1文字にマッチさせることができます。このメタ文字は、改行文字(\n)を除くあらゆる単一の文字と一致します。re.findall() 関数と組み合わせれば、指定した文字列からすべての文字を1つずつ取り出すことが可能です。サンプルコードimport re foo = https://www/twitter/index.php 403 result = re.findall(r., foo) print(result)実行結果上記のコードを実行すると、次のような出力が得られます。文字列内の各文字(英字・記号