Pythonで「a」または「b」のいずれかに一致する正規表現パターンの作成方法
Pythonで文字列の中から「a」または「b」のいずれか一方にマッチさせたい場合は、正規表現における選択(OR)を意味する | を使って、(a|b) のようなパターンを作成します。
さらに、大文字と小文字を区別せずにマッチさせたい場合は、re モジュールのフラグ re.I(re.IGNORECASE)を指定すると便利です。これにより、「A」「B」のような大文字も同様にマッチ対象になります。
サンプルコード
以下の例では、文字列「Bank of Baroda」から「a」または「b」(大文字・小文字を問わない)をすべて抽出しています。
import re s = 'Bank of Baroda' print(re.findall(r'(a|b)', s, re.I))
実行結果
['B', 'a', 'B', 'a', 'a']
コードの解説
r'(a|b)':括弧内のa|bは「a または b」を表す選択パターンです。rを付けて raw 文字列にすることで、バックスラッシュの扱いがシンプルになります。re.findall():パターンに一致したすべての部分をリストとして返します。re.I:大文字・小文字を無視するフラグです。これにより「B」もマッチ対象になります。
なお、グループ化の括弧 () を外して r'a|b' としても同じ結果が得られます。また、単一文字の選択であれば、文字クラスを使った r'[ab]' の方がより簡潔で効率的です。
-
【Python】正規表現を使って文字列内の単語をマッチ・抽出する方法
次のコードは、指定された文字列の中から「meeting」という単語を抽出します。ここでは肯定の先読み(look-ahead)と肯定の後読み(look-behind)アサーションを使用しています。これにより、単語を囲む文字の存在を条件として考慮しつつ、その文字自体はマッチ結果に含めないようにできます。コード例import re s = https://www.google.com/meeting_agenda_minutes.html result = re.findall(r(?<=[\W_])meeting(?=[\W_]), s) print(result)出力[meeting]パ
-
Pythonの正規表現における修飾子(フラグ)の使い方と機能一覧
Python正規表現の修飾子とはPythonのreモジュールでは、正規表現によるパターンマッチングの挙動を制御するために、さまざまな修飾子(フラグ)を指定することができます。これらの修飾子を使うことで、大文字小文字の区別や改行の扱いなど、マッチングの動作を柔軟に変更できます。以下に、主要な修飾子とその機能を一覧形式で紹介します。1. re.I(re.IGNORECASE)大文字と小文字を区別せずにマッチングを行います。英字の大小を無視したい場合に便利です。2. re.L(re.LOCALE)現在のロケール設定に従って単語を解釈します。このフラグは、アルファベット系のグループ(\w および \W