アンカー — 位置にマッチする

初級104

文字列の先頭・末尾・単語境界など「位置」を指定するアンカー(^, $, \b)を学びます。

アンカーとは?

アンカーは「位置」にマッチする特殊文字です。

文字そのものではなく、文字列の先頭・末尾・単語境界などを指定します。

^ — 行頭

^ は文字列(または行)の先頭にマッチします。

パターン: ^Error
テスト: "Error: not found"  → マッチ
テスト: "Not an Error"       → マッチしない

複数行モード(フラグ m)と組み合わせると、各行頭に対応します。

$ — 行末

$ は文字列(または行)の末尾にマッチします。

パターン: \.js$
テスト: "index.js"    → マッチ
テスト: "index.jsx"   → マッチしない

\b — 単語境界

\b単語の境界(単語文字と非単語文字の間)にマッチします。

パターン: \bcat\b
テスト: "my cat is here"  → "cat" にマッチ
テスト: "catfish scat"    → マッチしない

まとめ

アンカー意味
^行頭(フラグ m で各行頭)
$行末(フラグ m で各行末)
\b単語境界
\B単語境界以外

次のレッスン: 量指定子 — 繰り返しを制御する

regex-dojo — JavaScript RegExp
正規表現エディタ入力するたびにリアルタイムで検証
//g
フラグ:
テスト文字列
Error: file not found Warning: disk full Error: timeout
マッチ結果
Error: file not found Warning: disk full Error: timeout
パターンを入力するとリアルタイムで検証します
練習問題 — 0/4 完了 (0/50pt)
行頭にある「Error」のみにマッチさせてください(^ と フラグ gm を使う)。
10pt
「.js」で終わるファイル名の「.js」部分にマッチさせてください(\. と $ を使う)。
10pt
単語「cat」のみにマッチさせてください。「catfish」の「cat」にはマッチしてはいけません(\b を使う)。
15pt
「hello」で始まり「world」で終わる行全体にマッチさせてください。
15pt