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

Jam*_*ead 1 html regex

我正在使用此正则表达式来查找<script>标记:

<script (.|\n)*>(.|\n)*?</script>
Run Code Online (Sandbox Code Playgroud)

问题是,它匹配下面的ENTIRE字符串,而不仅仅是每个标记:

<script src="crap2.js"></script><script src="crap2.js"></script>
Run Code Online (Sandbox Code Playgroud)

And*_*ndy 8

由于这个原因以及各种其他原因,您最好使用DOM来处理HTML.

  • 我不处理HTML. (2认同)
  • 因为它是HTML- [i]相关[/ i]. (2认同)

JSB*_*ոգչ 7

除了XHTML自包含标签之外,除了RegEx匹配开放标签之外,我认为不需要说任何其他内容.

  • 这是一个可怕的答案.看,我不是试图使用正则表达式解析<b> XHTML </ b>.我正在尝试匹配<b>字符串</ b>&lt; script ...&gt;&lt;/script&gt;.这完全在正则表达式的能力范围内. (7认同)
  • 这是一个评论而不是一个答案. (3认同)
  • 应该是wiki. (3认同)
  • JamesBrownIsDead,除了你需要关心案例,空格,HTML注释,嵌入式脚本中的字符串,`<pre>`region ...解析HTML是一个已解决的问题. (2认同)

The*_*ean 7

把你的第一个改为*?

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

  • 如果有人用沉闷的刀子进行枪战,那么锐化会解决他的问题吗? (6认同)

Bil*_*win 7

另见本周的Coding Horror:解析Html The Cthulhu Way,灵感来自@bobince与@JS Bangs链接的史诗回答.