Html RegEx获取脚本标记的属性和主体

Html RegEx获取脚本标记的属性和主体,html,regex,Html,Regex,我正在使用此正则表达式查找标记: (.|\n)*? 问题是,它匹配下面的整个字符串,而不仅仅是单独匹配每个标记: <script src="crap2.js"></script><script src="crap2.js"></script> 我不认为除此之外还有什么需要说。我不认为除此之外还有什么需要说。出于这个原因和其他各种原因,您真的最好使用DOM来处理HTML。出于这个原因和各种原因,您真的最好使用DOM来处理HTML其他。将第一个*

我正在使用此正则表达式查找标记:

(.|\n)*?
问题是,它匹配下面的整个字符串,而不仅仅是单独匹配每个标记:

<script src="crap2.js"></script><script src="crap2.js"></script>


我不认为除此之外还有什么需要说。

我不认为除此之外还有什么需要说。

出于这个原因和其他各种原因,您真的最好使用DOM来处理HTML。

出于这个原因和各种原因,您真的最好使用DOM来处理HTML其他。

将第一个*更改为*


这是非贪婪的“全部匹配”,因此它将匹配下一个“>”之前的最小字符集。

将第一个*更改为*

这是非贪婪的“全部匹配”,因此它将匹配下一个'>'之前的最小字符集。

尝试排除任何'尝试排除任何'
[\s\s]*?
<>这与大多数常见的情况匹配,但它是<>强>非常/强>重要。

<代码> [s\s] *

<>这是最常见的情况,但是<>强>非常/强>重要。

直到这个问题类型已经从这个星球的表面被擦除(希望在10年左右):不要使用正则表达式,例如HTML或XML。改用解析器。

直到这个问题类型从地球表面消失(希望在10年左右):不要为html或xml等不规则语言使用正则表达式。使用解析器。

另请看本周的编码恐惧:,灵感来源于@JS Bangs链接到的史诗。

另请看本周的编码恐惧:,灵感来源于@JS Bangs链接到的史诗。

即使它在技术上不是有效的HTML,人们通常也会编写这样的代码:
if(a
你没有排除
即使它在技术上是无效的HTML,人们通常会编写这样的代码:
如果(a
你没有排除
这可能是我见过的任何问题的最佳答案!这与其说是回答,不如说是评论。这是一个糟糕的回答。听着,我不是想用正则表达式来解析XHTML。我正在尝试匹配字符串脚本…/脚本。这完全在regex.jamesbrownsdead的功能范围内,只是需要注意大小写、空格、HTML注释、嵌入脚本中的字符串、
区域。。。解析HTML是一个已解决的问题。您正在解析HTML。如果你没有,里面就不会有标签。这可能是我见过的对任何问题的最好答案!这与其说是回答,不如说是评论。这是一个糟糕的回答。听着,我不是想用正则表达式来解析XHTML。我正在尝试匹配字符串脚本…/脚本。这完全在regex.jamesbrownsdead的功能范围内,只是需要注意大小写、空格、HTML注释、嵌入脚本中的字符串、
区域。。。解析HTML是一个已解决的问题。您正在解析HTML。如果你没有,里面就不会有标签。虽然我同意JS Bangs的链接,但我很确定这会解决他的问题如果有人拿着一把钝刀来枪战,磨快它能解决他的问题吗?@Svante:是的,只要没有子弹:)@Thesen:我猜“子弹”是指javascript字符串中包含“”?基本上,你假设没有子弹。但如果你珍惜生命:如果你看到有枪指着你,就快跑!虽然我同意JS Bangs的链接,但我很确定这会解决他的问题如果有人拿着一把钝刀来枪战,磨快它能解决他的问题吗?@Svante:是的,只要没有子弹:)@Thesen:我猜“子弹”是指包含“”的javascript字符串吗?基本上,你假设没有子弹。但如果你珍惜生命:如果你看到有枪指着你,就快跑!如果您没有处理HTML,为什么将问题标记为与HTML相关?因为它与HTML-[i]相关[/i]。如果您没有处理HTML,为什么将问题标记为与HTML相关?因为它与HTML-[i]相关[/i]。Try:
]*>[^Try:
]*>[^例如,您创建的任何正则表达式都将与javascript中的结束脚本标记匹配,因此:是的,您正在分析一种语言。另一种方法:您正在分析一种语言的XML。(或者XML-XML文档的子集必须有一个根节点,而您的字符串没有根节点)例如,您创建的任何正则表达式都将与javascript中的结束脚本标记相匹配,因此:是的,您正在解析一种语言。另一种方法:您正在解析XML,这是一种语言。(或者XML-XML文档的子集必须有一个根节点,而您的字符串没有)
<script src="crap2.js"></script><script src="crap2.js"></script>
 <script (.|\n)*>(.|\n|[^<])*?</script>
<script[\s\S]*?>[\s\S]*?</script>