グループとOR

中級124

パターンをグループ化する () と、選択を表す | の使い方を学びます。

グループ ( )

(...) でパターンをグループ化できます。グループには2つの用途があります。

1. まとまりとして量指定子を適用

(ha)+    → "ha", "haha", "hahaha" にマッチ
(ab){3}  → "ababab" にマッチ

2. キャプチャグループ

マッチした部分を後から参照できます(後方参照・置換で活躍)。

(\d{4})-(\d{2})-(\d{2})
テスト: "2024-01-15"
グループ1: "2024", グループ2: "01", グループ3: "15"

OR — 選択

| は「または」を表します。

cat|dog  → "cat" または "dog" にマッチ

グループと組み合わせると部分的に OR を適用できます。

gr(a|e)y  → "gray" または "grey"(= gr[ae]y と同等)
https?://  → "http://" または "https://"

非キャプチャグループ (?:)

キャプチャせずにグループ化したい場合は (?:...) を使います。

(?:ha)+  → グループ化のみ(キャプチャなし)

まとめ

構文意味
(abc)グループ化 + キャプチャ
(?:abc)グループ化のみ(非キャプチャ)
aba または b
regex-dojo — JavaScript RegExp
正規表現エディタ入力するたびにリアルタイムで検証
//g
フラグ:
テスト文字列
I have a cat and a dog at home
マッチ結果
I have a cat and a dog at home
パターンを入力するとリアルタイムで検証します
練習問題 — 0/4 完了 (0/50pt)
「cat」または「dog」にマッチするパターンを書いてください(| を使う)。
10pt
「ha」「haha」「hahaha」の全てにマッチするパターンを書いてください(グループ + + を使う)。
10pt
「2024-01-15」のような日付(YYYY-MM-DD)を全てマッチさせてください。
15pt
「http://」または「https://」で始まるURLを全てマッチさせてください。
15pt