正则表达式提取html正文

Bru*_*ams 4 c# regex vb.net

考虑到html和body标签可能是大写,小写或可能不存在,我如何使用Regex从html文档中提取正文?

Dar*_*ryl 13

这样的事怎么样?

它将<body></body>标记之间的所有内容(由于大小写不敏感RegexOptions.IgnoreCase)捕获到一个名为的组中theBody.

RegexOptions.Singleline 允许我们将多行HTML作为单个字符串处理.

如果HTML不包含<body></body>标记,Success则匹配的属性将为false.

        string html;

        // Populate the html string here

        RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Singleline;
        Regex regx = new Regex( "<body>(?<theBody>.*)</body>", options );

        Match match = regx.Match( html );

        if ( match.Success ) {
            string theBody = match.Groups["theBody"].Value;
        }
Run Code Online (Sandbox Code Playgroud)


And*_*are 10

不要使用正则表达式 - 使用类似Html Agility Pack的东西.

这是一个敏捷的HTML解析器,它构建一个读/写DOM并支持普通的XPATH或XSLT(你实际上不需要理解XPATH或XSLT来使用它,不用担心......).它是一个.NET代码库,允许您解析"out of the web"HTML文件.解析器非常容忍"真实世界"格式错误的HTML.对象模型与提出System.Xml非常相似,但对于HTML文档(或流).

然后你可以body用XPATH 提取.