如何使用正则表达式检查html文档是否包含非空的脚本标记

Flo*_*ian 3 java regex

我试图检查一个HTML文档是否包含使用正则表达式非空的脚本标记.正则表达式应该匹配任何脚本标记与除空格或换行符之外的内容.

我试过了

<script\b[^>]*>[^.+$]</script>
Run Code Online (Sandbox Code Playgroud)

但是这个正则表达式只能找到一个空格的脚本标签.

Ant*_*sky 7

不要用regexen解析HTML! 说真的,在一般情况下,这几乎是不可能的.你为什么要在这里使用正则表达式?使用HTML解析器会更有意义,虽然我不能给你任何特别的建议,因为我不知道你正在使用什么语言.例如,如果您正在使用JavaScript DOM,则需要以下内容:

var scripts     = document.getElementsByTagName('script')
var numScripts  = scripts.length
var textScripts = []
for (var i = 0; i < numScripts; ++i)
  if (scripts[i].text !== '') textScripts.push(scripts[i])
Run Code Online (Sandbox Code Playgroud)

这将查看HTML 的结构以确定脚本标记的属性,而不是在杂乱的文本中.


编辑1:显然,你正在使用Java.不幸的是,我对Java中的HTML解析一无所知,所以我不能给你任何建议; 然而,看看,因为它是要走的路.