[アンカー]文字列の先頭と文字列の末尾の位置にマッチする:キャレット(^) ドル記号($)

広告

正規表現で使用するメタ文字の一つであるキャレット(^)とドル記号($)の使い方について解説します。キャレット(^)は文字列の先頭にマッチします。ドル記号($)は文字列の末尾にマッチします。このような幅 0 の文字にマッチするメタ文字をアンカーと呼びます。

※ 文字列全体ではなく単語の先頭または末尾にマッチさせる方法については「単語の先頭と単語の末尾にマッチする:\b \B」を参照されてください。

(2021 年 08 月 23 日公開 / 2021 年 08 月 23 日更新)

文字列の先頭にマッチする:キャレット(^)

キャレット(^)は文字列の先頭にマッチするメタ文字です。

^

例えば次のような正規表現のパターンで考えてみます。

^py

行の先頭、 "p" 、 "y" 、と続くパターンとなります。このパターンとマッチする文字列は例えば次のようなものになります。

〇 python
〇 pylon
✕ happy birthday
✕ copy

"p" そして "y" と文字が続いていたとしても文字列の先頭にない場合はマッチしません。

サンプル

JavaScript を使って簡単な正規表現のサンプルを作成してみます。

const regex = /^py/;

regex.test('python');
--> true
regex.test('pylon');
--> true
regex.test('happy birthday');
--> false
regex.test('copy');
--> false

文字列の先頭にマッチする:キャレット(^)(1)

文字列の末尾にマッチする:ドル記号($)

ドル記号($)は文字列の末尾にマッチするメタ文字です。

$

例えば次のような正規表現のパターンで考えてみます。

py$

"p" 、 "y" 、行の末尾、と続くパターンとなります。このパターンとマッチする文字列は例えば次のようなものになります。

〇 happy
〇 backup copy
✕ happy birthday
✕ python

"p" そして "y" と文字が続いていたとしても文字列の末尾にない場合はマッチしません。

サンプル

JavaScript を使って簡単な正規表現のサンプルを作成してみます。

const regex = /py$/;

regex.test('happy');
--> true
regex.test('backup copy');
--> true
regex.test('happy birthday');
--> false
regex.test('python');
--> false

文字列の末尾にマッチする:ドル記号($)(1)

キャレット(^)とドル記号($)を同時に使う

キャレット(^)とドル記号($)を両方使い、次のようなパターンを使用することがよくあります。

^cat$

文字列の先頭、 "c" 、 "a"、 "t" 、文字列の末尾、と続くパターンとなります。このパターンとマッチする文字列は "cat" という文字列だけになります。

〇 cat
✕ stray cat
✕ catalog

"c" "a" そして "t" と文字が続いていたとしても前後に他の文字がある場合はマッチしません。

サンプル

JavaScript を使って簡単な正規表現のサンプルを作成してみます。

const regex = /^cat$/;

regex.test('cat');
--> true
regex.test('stray cat');
--> false
regex.test('catalog');
--> false

キャレット(^)とドル記号($)を同時に使う(1)

-- --

正規表現で使用するメタ文字の一つであるキャレット(^)とドル記号($)の使い方について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。