1. ホーム
  2. javascript

[解決済み] JavaScriptにおける負のlookbehindに相当するもの

2022-04-25 18:35:34

質問

と同等の機能を実現する方法はありますか? ネガティブルックビハインド をJavaScriptの正規表現で使うことはできますか? 特定の文字で始まらない文字列にマッチさせたいのですが。

マッチした部分が文字列の先頭にある場合に失敗せずにこれを実行する正規表現を見つけることができないようです。 ネガティブ・ルックバインドが唯一の答えのようですが、JavaScriptにはそれがありません。

これは、私が動作させたい正規表現ですが、動作しません。

(?<!([abcdefg]))m

つまり、'jim' や 'm' の 'm' にはマッチするが、'jam' にはマッチしないのである。

どのように解決するのですか?

ルックビハインドアサーション ゲット アクセプト に入っています。 ECMAScript仕様 を2018年に発表しました。

ポジティブなlookbehindの使い方。

console.log(
  "$9.99  €8.47".match(/(?<=\$)\d+\.\d*/) // Matches "9.99"
);

ネガティブなlookbehindの使い方。

console.log(
  "$9.99  €8.47".match(/(?<!\$)\d+\.\d*/) // Matches "8.47"
);

プラットフォーム対応。