在 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中文网其他相关文章!