量指定子 — 繰り返しを制御する

中級124

?, *, +, {n,m} など繰り返し回数を指定する量指定子をマスターします。

量指定子とは?

量指定子は直前のパターンが何回繰り返すかを指定します。

基本の量指定子

量指定子意味
?0回または1回(省略可能)colou?r
*0回以上a*
+1回以上\d+
{n}ちょうど n 回\d{3}
{n,}n 回以上\w{4,}
{n,m}n 回以上 m 回以下\d{2,4}

使用例

colou?r  → "color" と "colour" の両方にマッチ
\d+      → "1", "42", "100" にマッチ(1桁以上)
\d{3}   → "123" にマッチ(3桁ちょうど)
\d{2,4} → "12", "123", "1234" にマッチ(2〜4桁)

貪欲(greedy)vs 非貪欲(lazy)

デフォルトは貪欲マッチ(できるだけ長くマッチ)。

? を付けると非貪欲マッチ(できるだけ短くマッチ)になります。

パターン: .+   テスト: "<b>bold</b>"
貪欲:  "<b>bold</b>" 全体にマッチ
非貪欲: .+?  → "<b>" にマッチ

次のレッスン: グループとOR

regex-dojo — JavaScript RegExp
正規表現エディタ入力するたびにリアルタイムで検証
//g
フラグ:
テスト文字列
British colour vs American color
マッチ結果
British colour vs American color
パターンを入力するとリアルタイムで検証します
練習問題 — 0/4 完了 (0/50pt)
「colour」と「color」の両方にマッチするパターンを書いてください(? を使う)。
10pt
1文字以上の連続する数字(整数)を全てマッチさせてください(\d+ を使う)。
10pt
ちょうど3桁の数字にマッチするパターンを書いてください(\d{3} を使う)。「1234」の「123」にはマッチしないよう \b を使ってください。
15pt
4文字以上の英単語を全てマッチさせてください([a-z]{4,} を使う)。
15pt