【问题标题】:Extracting HTML contents inside a div using regex [duplicate]使用正则表达式提取 div 内的 HTML 内容 [重复]
【发布时间】:2018-05-16 07:57:13
【问题描述】:

我正在使用以下代码从具有这种格式的 div 中提取内容:<div id="post-contents"></div>

string findtext2 = @"<div[^>]*\\id=\post-contents\[^>]*>(.*?)</div>";
string myregex2 = txt;
MatchCollection doregex2 = Regex.Matches(myregex2, findtext2);
string matches2 = "";
foreach (Match match2 in doregex2)
{
    matches2 = (matches2 + (match2.ToString()));
}
return matches2;

但是我遇到了一些关于 HTML 标签的错误。实际上,该标签还包含一些其他 HTML 标签,如下所示:

&lt;div id="post-contents"&gt;&lt;p dir="ltr"&gt;HI HI HI&lt;/p&gt;&lt;/div&gt;

请你帮我,我怎样才能得到&lt;p dir="ltr"&gt;HI HI HI&lt;/p&gt;

谢谢

【问题讨论】:

  • 使用 HtmlAgilityPack。见here
  • @john 我不知道。你能帮忙吗?
  • 这里,检查一下:How to use HTML Agility pack
  • 查看here 了解您想要做的事情。它是一个 td,而不是一个 div,但概念完全一样。

标签: c# html asp.net regex


【解决方案1】:

您的正则表达式在所述情况下运行良好:https://regex101.com/r/jbDN1U/1。但是你不能用正则表达式处理这样的情况:

<div id="post-contents"><div dir="ltr">HI HI HI</div></div>

在这种情况下,Regexp 无法确定选择哪个结束 div。正如 cmets 中提到的,考虑使用 XML 解析器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2012-11-01
    • 2010-09-26
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多