首页  >  文章  >  web前端  >  如何将多行内容与 JavaScript 正则表达式匹配?

如何将多行内容与 JavaScript 正则表达式匹配?

Patricia Arquette
Patricia Arquette原创
2024-10-28 20:02:02320浏览

How to Match Multiline Content with JavaScript Regular Expressions?

克服多行匹配的 JavaScript 正则表达式边界

使用 JavaScript 正则表达式时,了解如何匹配跨多个行的内容变得至关重要线。考虑以下代码片段,尝试提取其中包含换行符的 PRE 块:

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

预期结果是捕获整个 PRE 块,但结果是空警报。为了纠正这个问题,我们深入研究了多行匹配的复杂性。

'.|[rn]'策略

最初的方法是将 .通配符以及与任何字符或换行符匹配的表达式:(.|[rn])。然而,这被证明是无效的。

启示:[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">...<\/pre></code>

贪婪的微妙之处:'?'与 ''

另一个考虑因素与所使用的量词有关。虽然 似乎是显而易见的选择,但它引入了不必要的贪婪。 '?'或者 ' ?'确保匹配找到第一个匹配项,而不是最长的匹配项。

关于 [^]

同时 [^] 也可以用作多行点,根据另一篇文章中的评论,它已被弃用。因此,最好坚持使用[sS]。

以上是如何将多行内容与 JavaScript 正则表达式匹配?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn