本文へスキップ
BecomeCoder

正規表現コース · 第4章 位置とまとまり · レッスン13

選択 ― | で「AまたはB」を表す

ブラウザで完結

導入

catdogbird」のように、いくつかの候補のどれか にマッチさせたいときに使うのが選択(alternation)の |(縦棒/パイプ)です。文字クラス [ ] が「1文字の候補」だったのに対し、| は「文字列まるごとの候補」を表せます。

説明

| は「左右のどちらか」を意味します。

パターン: cat|dog|bird   対象: I have a dog   → "dog" にマッチ

| の適用範囲は広いので、候補を区切る範囲は ( ) で明示するのが安全です。

パターン: ^(赤|青|黄)信号$   対象: 青信号   → マッチ
パターン: ^赤|青|黄信号$     ← カッコなしだと「^赤」「青」「黄信号$」の3択と解釈され、意図がずれる

(赤|青|黄)信号 は「赤・青・黄のいずれか + 信号」を表します。カッコで候補をくくることで、共通部分(信号)と選択部分(赤|青|黄)をきれいに分けられます。

パターン: https?|ftp    対象: https / http / ftp   → いずれもマッチ

https?? は「s が0か1回」なので httphttps の両方を1つで表せる、という前章の応用です。)

やってみよう

| は「または」。候補が文字列単位なら (A|B|C) のようにカッコでくくる ―― これで「どれか1つ」のパターンを安全に書けます。第2章の [ ](1文字の候補)との使い分けも意識しましょう。

実際に動かしてみよう

パターン欄に正規表現を、下の「テスト文字列」欄に対象の文字列を入れると、マッチした部分がその場でハイライトされます(ブラウザ標準の正規表現エンジンで動きます)。フラグ(g/i/m/s)を切り替えたり、本文のパターンを書き換えたりして、マッチの変化を確かめながら進めましょう。

正規表現 — その場でマッチを確認

ブラウザ標準の正規表現エンジンでパターンを試せる学習用ウィジェットを読み込みます(外部エンジン不要・軽量です)。
スクロールして表示された時点でも自動で読み込まれます。