我在var。
中有这段代码<html>
<head>
.
.
anything
.
.
</head>
<body anything="">
content
</body>
</html>
或
<html>
<head>
.
.
anything
.
.
</head>
<body>
content
</body>
</html>
结果应该是
content
答案 0 :(得分:19)
请注意,上面提供的基于字符串的答案在大多数情况下都适用。正则表达式解决方案提供的一个主要优势是,您可以更轻松地在打开/关闭正文标记上提供不区分大小写的匹配。如果您不关心这一点,那么在这里使用正则表达式没有重要理由。
对于那些将HTML和正则表达式放在一起并投入合适的人......由于您实际上并没有尝试使用此解析HTML,因此您可以使用正则表达式执行此操作。如果由于某种原因,content
包含</body>
,那么它会失败,但除此之外,你有一个足够具体的场景,正则表达式能够做你想做的事情:
var strVal = yourStringValue; //obviously, this line can be omitted - just assign your string to the name strVal or put your string var in the pattern.exec call below
var pattern = /<body[^>]*>((.|[\n\r])*)<\/body>/im
var array_matches = pattern.exec(strVal);
执行上述操作后,array_matches[1]
将保留<body
和</body>
代码之间的任何内容。
答案 1 :(得分:0)
var matched = XMLHttpRequest.responseText.match(/<body[^>]*>([\w|\W]*)<\/body>/im);
alert(matched[1]);
答案 2 :(得分:-3)
我相信您可以将html文档加载到.net HTMLDocument对象中,然后只需调用HTMLDocument.body.innerHTML吗?
我相信使用更新的XDocumnet还有更简单的方法。
为了回应上面的一些评论,正则表达式不是最好的工具,因为html不是常规语言,并且有一些难以解决的边缘情况。
https://en.wikipedia.org/wiki/Regular_language
享受!