HOWTO · Python

Python で正規表現を使用してグループをキャプチャする

このチュートリアルでは、Python で正規表現を使用してグループをキャプチャする方法を示します。

このチュートリアルでは、Python で正規表現を使用してグループをキャプチャする方法を示します。 また、グループとそれらをキャプチャする方法についても学びます。 飛び込みましょう。

Python で正規表現を使用してグループをキャプチャする

グループは、括弧で囲まれた正規表現パターンのメタ文字です。 括弧 () のペア内に正規表現パターンを含めることで、グループを作成できます。 たとえば、ca、および t の文字は、通常のフレーズ (cat) によって 1つのグループに結合されます。

たとえば、実際のシナリオで電話番号と電子メールを記録することができます。 その結果、2つのグループを作成する必要があります。1つ目はメールを検索し、2つ目は電話番号を検索します。

さらに、グループをキャプチャして、一連の文字を単一のエンティティとして扱うことができます。 それらは、グループ化する必要がある文字の周りに括弧を追加することによって作成されます。

好きなだけグループを指定できます。 たとえば、括弧のペアで各サブパターンのグループを記録できます。 キャプチャ グループの左括弧内の数字は、左から右にカウントされます。

キャプチャ グループの正規表現マッチング機能により、match オブジェクトにクエリを実行して、特定の正規表現コンポーネントと一致したテキストの部分を特定できます。

括弧 () で囲まれているものはすべてキャプチャ グループです。 各グループの一致値は、正規表現 match オブジェクトの group(group number) メソッドを使用して抽出できます。

まず、次のコマンドを使用して、Python ディレクトリに regex をインストールする必要があります。

pip install regex

次のコードを見て、Python で正規表現を使用してグループをキャプチャする方法を学習してください。

import re

date = "09/03/2022"
pattern = re.compile("(\d{2})\/(\d{2})\/(\d{4})")
match = pattern.match(date)

print("start")
print(match)
print(match.groups())

# group 0 : matches whole expression
print(match.group(0))

# group 1: match 1st group
print(match.group(1))

# group 2: match 2nd group
print(match.group(2))

# group 3: match 3rd group
print(match.group(3))

出力は次のとおりです。

start
<re.Match object; span=(0, 10), match='09/03/2022'>
('09', '03', '2022')
09/03/2022
09
03
2022

ご覧のとおり、インデックス値を使用して各グループをキャプチャできます。