JavaScript での複数行にわたる正規表現の利用
JavaScript では、複数行のマッチング用に設計されたはずの 'm' フラグがコンテンツのキャプチャに失敗します改行をまたいで。これを解決するには、より堅牢なソリューションが必要です。
重要なのは、'[sS]' または '[^]' を複数行のドットとして使用することです。これらのパターンは、改行を含む任意の文字と一致します。このアプローチは、複数行にわたるコンテンツの分散に関係なく、コンテンツを効果的にキャプチャします。
例:
var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match( /
[\s\S]*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
より難解な代替案:
提供されたソリューションは効果的ですが、'[sS]' を '.*?' に置き換えることによって、それほど複雑ではないアプローチを実現できます。この量指定子は、任意の数の文字 (改行を含む) を貪欲に照合するため、より効率的で的を絞った照合が行われます。
var arr = ss.match( /<pre class="brush:php;toolbar:false">.*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
ヒント:
以上がJavaScript で正規表現を効果的に使用して複数行のマッチングを行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。