我正在寻找一个正则表达式语句,可以让我从XHTML文档的body标签之间提取HTML内容。
我需要解析的XHTML文件非常简单,不用担心JavaScript内容或<![CDATA[
标记,例如。
下面是我要解析的HTML文件的预期结构。由于我确切地知道我将要处理的HTML文件的所有内容,因此这个HTML片段基本上涵盖了我全部的用例。如果我能够得到一个正则表达式来提取这个示例的主体,我就会很满意。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
</title>
</head>
<body contenteditable="true">
<p>
Example paragraph content
</p>
<p>
</p>
<p>
<br />
</p>
<h1>Header 1</h1>
</body>
</html>
从概念上讲,我一直在尝试构建一个正则表达式字符串,该字符串匹配除内部主体内容以外的所有内容。使用这个正则表达式,我会使用C#中的Regex.Split()
方法来获取主体内容。我认为这个正则表达式是:
((.|\n)*<body (.)*>)|((</body>(*|\n)*)
...看起来这应该可以解决问题,但是在RegexBuddy中测试我的内容时似乎根本不起作用。
Split()
不是这个任务的正确工具。只需使用Regex.Match(subject, "(?s)<body[^>]*>(.*)</body>").Groups[1].Value
。 - Alan Moore