【JavaScript ECMAScript】Lookbehind assertion: (?<=...), (?<!...)言語機能の使い方
Lookbehind assertion: (?<=...), (?<!...)言語機能の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Lookbehind assertion: (?<=...), (?<!...)オブジェクトは、正規表現において、現在のマッチング位置の直前の文字列が特定のパターンに一致するかどうかを条件として評価するために用いられる特殊な構文要素を表すオブジェクトです。この機能は、正規表現エンジンが文字列を検証する際に、後方にあるべき、またはあってはならない条件を精密に指定するために活用されます。
具体的には、(?<=...) は肯定後読みアサーションと呼ばれ、現在の位置の直前の文字列が括弧内のパターンに一致する場合にのみ、その後のマッチングを成功させます。一方、(?<!...) は否定後読みアサーションと呼ばれ、直前の文字列が括弧内のパターンに一致しない場合にのみ、その後のマッチングを続行させる役割を担います。
Lookbehind assertionの最大の特長は、この条件確認の対象となった直前の文字列自体が、最終的なマッチ結果には含まれないことです。これにより、特定の文字列を「前にあるべき条件」として利用しつつも、その条件部分をマッチ結果から除外し、本当に必要な情報のみを抽出することが可能になります。例えば、「$100」という文字列から「100」だけを取得したいが、その直前に「$」記号があることが条件である場合に、「(?<=\$)\d+」と記述することで、「$」は結果に含まれずに「100」のみが得られます。システム開発において、複雑なテキストデータから目的の情報を効率的かつ正確に抽出する上で非常に有用な機能です。
構文(syntax)
1const positiveLookbehind = /(?<=prefix)pattern/; 2const negativeLookbehind = /(?<!prefix)pattern/;
引数(parameters)
引数なし
引数はありません
戻り値(return)
戻り値なし
戻り値はありません