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

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

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

(Last modified: )

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

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

^

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

^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 )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。