ホームページ  >  記事  >  ウェブフロントエンド  >  複数行のテキストを JavaScript の正規表現と効果的に照合する方法

複数行のテキストを JavaScript の正規表現と効果的に照合する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 04:09:02620ブラウズ

How to Effectively Match Multiline Text with Regular Expressions in JavaScript?

JavaScript の複数行正規表現の落とし穴を克服する

JavaScript で正規表現を使用して複数行のテキストを照合しようとする場合、一般的な落とし穴に対処することが重要です。複数行モード向けの「m」フラグは、驚くべきことにパターン内の改行の処理に失敗します。複数行にわたるテキストを効果的に抽出するには、別のアプローチが必要です。

解決策: 複数行のマッチングに [sS] を使用する

解決策は、代わりに [sS] を利用することです。従来の複数行のマッチング用。 [sS] は空白や改行を含む任意の文字を表し、複数行にわたるテキストを効果的にキャプチャします。これを次のコードに示します。

<code class="js">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">...</u>pre> :)</code>

代替アプローチ

[sS] の使用は信頼できる解決策ですが、検討する価値のある代替アプローチもあります。一部の開発者は [^] の使用を推奨していますが、これは非推奨であり、すべてのブラウザでサポートされているわけではありません。 (.|[rn]) を採用することを提案する人もいますが、提供されているベンチマークで実証されているように、[sS] に比べてかなり遅いです:

Using [^]: fastest
Using [\s\S]: 0.83% slower
Using (.|\r|\n): 96% slower
Using (.|[\r\n]): 96% slower

Avoidance of Greediness

[sS] の使用に加えて、量指定子の貪欲さを避けることをお勧めします。必要に応じて、 を使用しますか?または ? または の代わりに、これはパフォーマンスに大きな影響を与える可能性があるためです。

これらのテクニックを活用することで、開発者は JavaScript での複数行の正規表現一致の課題を克服し、複数行にわたるテキストの正確かつ効率的な抽出を保証できます。

以上が複数行のテキストを JavaScript の正規表現と効果的に照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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