在这种情况下:
<script>
function();
</script>
please don't touch me.
<script>
function();
</script>
我正在尝试捕捉它们之间的标签和信息,但不是&#34;请不要在中间触摸我&#34;。到目前为止,我已经想出了这个:
/<script>[^]+<\/script>/ig
它捕获从第一个<script>
标记到最后一个</script>
标记的所有内容。
答案 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
我希望这会对你有所帮助。随意评论。