Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
アサーションには、 行や単語の先頭・末尾を示す境界や、(先読み、後読み、条件式を含む)何らかの方法で照合が可能なことを示す、その他のパターンが含まれます。
| ^ |
入力開始境界アサーション: 入力の先頭に一致します。複数行フラグ (multiline, m) が有効である場合、改行文字の直後にも一致します。例えば /^A/ は "an A" の "A" には一致しませんが、"An A" の先頭の "A" には一致します。 メモ: この文字は、文字クラスパターンの先頭にある場合は異なる意味を持ちます。 |
| $ |
入力末尾境界アサーション: 入力の末尾に一致します。複数行フラグ (multiline, m) が有効である場合、は、改行文字の直前にも一致します。例えば /t$/ は "eater" の "t" には一致しませんが、"eat" の "t" には一致します。 |
| \b |
単語境界アサーション: 単語の境界に一致します。これは、単語構成文字と後に続く非単語構成文字の間、または非単語構成文字と後に続く単語構成文字の間、または文字列の先頭・末尾です。単語の区切りは一致する「文字」ではありません。アンカーのように、単語の区切りは一致した部分に含まれません。言い換えると、一致した単語の区切りの長さは 0 です。 例:
バックスペース文字 ([\b]) については文字クラスを見てください。 |
| \B |
非単語境界アサーション: 単語の区切り以外に一致します。これは、前の文字と次の文字が同じ種類である位置のことです。2 つの文字の間や 2 つの空白の間など、どちらも単語構成文字か、あるいはどちらも非単語構成文字でなければなりません。文字列の先頭と末尾は、非単語構成文字とみなされます。一致した単語の区切りと同じように、一致した非単語の区切りも一致に含まれません。例えば、 /\Bon/ は "at noon" の "on" に、 /ye\B/ は "possibly yesterday" の "ye" に一致します。 |
メモ: ? の文字は数量子としても使用されます。
| x(?=y) |
先読みアサーション:
"x" の後に "y" が続く場合のみ "x" に一致します。例えば、 /Jack(?=Sprat)/ は "Jack" の後に "Sprat" が続く場合のみ一致します。 |
| x(?!y) |
否定先読みアサーション: "x" の後に "y" が続いていない場合のみ "x" に一致します。例えば、 /\d+(?!\.)/ は数字の後に小数点が続かない場合のみ一致します。/\d+(?!\.)/.exec('3.141')は "141" には一致しますが、 "3" には一致しません。 |
| (?<=y)x |
後読みアサーション: "x" の前に "y" がある場合のみ "x" に一致します。例えば、/(?<=Jack)Sprat/ は、 "Jack" が先行する場合のみ、 "Sprat" に一致します。 /(?<=Jack|Tom)Sprat/ は、 "Jack" か "Tom" が先行する場合のみ、 "Sprat" に一致します。しかし、 "Jack" も "Tom" も一致した結果には含まれません。 |
| (?<!y)x |
否定後読みアサーション: "x" の前に "y" がない場合のみ "x" に一致します。例えば、 /(?<!-)\d+/ は、数字の前にマイナス記号がない場合のみ、数字に一致します。 /(?<!-)\d+/.exec('3') は "3" に一致します。 /(?<!-)\d+/.exec('-3') では数字の前にマイナス記号があるため、一致するものは見つかりません。 |
^ は、通常、入力の先頭に一致させるために利用します。この例では、/^A/ という正規表現で 'A' で始まるフルーツを取得します。ここでの ^ は、入力の先頭を示すという、たった 1 つの役割を果たしています。適切なフルーツを選択するために filter メソッドとアロー関数を用います。
2 番目の例での ^ は、入力の先頭への一致と、文字クラスで用いられた場合の文字集合の否定または補集合という、両方で利用されています。
それ以外の例は 入力境界アサーションのリファレンスを参照してください。
この例では、 "en" または "ed" で終わる単語を含む果物の名前を照合します。
それ以外の例は 単語境界アサーションのリファレンスを参照してください。
この例は、 "First" という単語の後に "test" という単語が続く場合のみ一致しますが、"test" は照合結果に含まれません。
それ以外の例は 先読みアサーションのリファレンスを参照してください。
例えば、/\d+(?!\.)/ は小数点が後に続かない数値にだけ一致します。/\d+(?!\.)/.exec('3.141') は "141" に一致しますが、 "3" には一致しません。
それ以外の例は 先読みアサーションのリファレンスを参照してください。
?! の組み合わせを利用するとき、アサーション(/x(?!y)/ など)と文字クラス ([^?!] など)では異なる意味を持ちます。
この例では、 "orange" という単語の前に "ripe" という単語がある場合のみ、 "apple" に置き換えます。
それ以外の例は 後読みアサーションのリファレンスを参照してください。
This page was last modified on 2026年4月12日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.