Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】Lookahead assertion: (?=...), (?!...)言語機能の使い方

Lookahead assertion: (?=...), (?!...)言語機能の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

Lookahead assertion: (?=...), (?!...)クラスは、JavaScriptの正規表現において、特定の位置の直後に続く文字列のパターンを検査するための特殊な構文を表すクラスです。これは、実際にそのパターンをマッチング結果に含めることなく、あくまで条件としてその存在を確かめるために使用されます。

この機能は「前方参照アサーション」と呼ばれ、主に二つの形式があります。一つ目は肯定前方参照アサーションである (?=...) です。これは、正規表現の現在の位置の直後に、括弧内で指定されたパターンが存在する場合にのみ、その位置でのマッチングを成功させます。例えば、「特定の単語の後に必ず数字が続く場合のみ」といった条件を設定したい時に役立ちます。

二つ目は否定前方参照アサーションである (?!...) です。これは、現在の位置の直後に、括弧内で指定されたパターンが存在しない場合にのみ、その位置でのマッチングを成功させます。これにより、「特定の単語の後に数字が続かない場合のみ」といった、除外条件を設定することができます。

Lookahead assertionは、より複雑な文字列の検索や抽出、検証を行う際に、非常に柔軟で強力な条件指定を可能にし、マッチング対象の文字列をより精密に制御するために利用されます。

公式リファレンス: Lookahead assertion: (?=...), (?!...)

構文(syntax)

1"example apple pie".match(/apple(?= pie)/);
2"example apple juice".match(/apple(?! pie)/);

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ