ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で複数行の正規表現マッチングを処理するにはどうすればよいですか?

JavaScript で複数行の正規表現マッチングを処理するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-28 20:48:02875ブラウズ

 How to Handle Multi-Line Regex Matching in JavaScript?

JavaScript を使用した複数行の正規表現のマッチング

複数行にまたがる文字列をマッチングする場合、JavaScript の /m フラグは不適切であることが知られています。この制限に対処するには、より堅牢なアプローチが必要です。

解決策

解決策には、デフォルトの を置き換えることが含まれます。 (ドット) パターン。任意の 1 文字に一致します。代わりに [sS] が使用されます。以下に例を示します。

var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // "<pre class="brush:php;toolbar:false">... "

この正規表現は [sS] メタキャラクターを使用しており、空白文字や改行文字を含む任意の文字と一致します。その結果、正規表現は改行に関係なく文字列と一致します。

代替案とパフォーマンスに関する考慮事項

[sS] は信頼できるソリューションですが、代替アプローチもあります:

  • [^]` (非推奨): 改行以外の任意の文字と一致します。
  • (.|r|n) および (.| [rn]): これらのパターンはいずれも複数行の文字列に一致しますが、ベンチマークによるとかなり遅くなります。

ベスト プラクティス

パフォーマンスと不必要な貪欲さを避け、次のベスト プラクティスを検討してください:

  • * を使用しますか?または ? * の代わりに量指定子を使用するか、一致を必要最小限に制限します。
  • または * のような所有量指定子の使用は避けてください。

以上がJavaScript で複数行の正規表現マッチングを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。