否定先読みは JavaScript の正規表現の後読みを模倣できますか?

Susan Sarandon
リリース: 2024-11-12 21:30:02
オリジナル
556 人が閲覧しました

Can Negative Lookahead Mimic Regex Lookbehind in JavaScript?

JavaScript の否定先読み: 正規表現の後読みの代替

質問:

JavaScript では正規表現の後読みがありません。特定の条件を除いて特定のパターンに一致する方法はありますか?

回答:

ECMAScript 2018 より前では、JavaScript は負の後読みアサーションをネイティブにサポートしていませんでした。別のアプローチは次のとおりです。

^(?:(?!filename\.js$).)*\.js$
ログイン後にコピー

説明:

この正規表現は、文字列の各文字を明示的にチェックすることによって後読みをシミュレートします。後読み式 ("filename.js$") とその後に続く残りの正規表現 (".js$") が現在の文字で一致しない場合、その文字は許可されます。

^                 # Start of string
(?:               # Try to match the following:
 (?!              # First assert that we can't match the following:
  filename\.js    # filename.js 
  $               # and end-of-string
 )                # End of negative lookahead
 .                # Match any character
)*                # Repeat as needed
\.js              # Match .js
$                 # End of string
ログイン後にコピー

ただし、その後、より単純な代替手段が登場しました。

^(?!.*filename\.js$).*\.js$
ログイン後にコピー

この後者のアプローチは、すべての文字で先読みをチェックしないため、より効率的です。

^                 # Start of string
(?!               # Assert that we can't match the following:
 .*               # any string, 
  filename\.js    # followed by filename.js
  $               # and end-of-string
)                 # End of negative lookahead
.*                # Match any string
\.js              # Match .js
$                 # End of string
ログイン後にコピー

以上が否定先読みは JavaScript の正規表現の後読みを模倣できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート