如何使正则表达式忽略HTML标记集之间的内容?

时间:2016-08-17 13:33:27

标签: html regex

在这种情况下:

<script>
function();
</script>

please don't touch me.

<script>
function();
</script>

我正在尝试捕捉它们之间的标签和信息,但不是&#34;请不要在中间触摸我&#34;。到目前为止,我已经想出了这个:

/<script>[^]+<\/script>/ig

它捕获从第一个<script>标记到最后一个</script>标记的所有内容。

3 个答案:

答案 0 :(得分:2)

你需要让正则表达式不贪婪,因为默认情况下它是贪婪的:

<script>[^]+?<\/script>

答案 1 :(得分:0)

使用?量词来匹配第一个结束标记:

/<script>([^]*?)<\/script>/ig

但正如其他人已经说过的那样,在处理HTML时,最好使用XML解析器。

答案 2 :(得分:-1)

尝试以下一个正则表达式

var re = /<script\b[^>]*>([\s\S]*?)<\/script>/gm;

答案参考https://stackoverflow.com/a/1448870/5391322

我希望这会对你有所帮助。随意评论。