【问题标题】:Find tag with contents in HTML using Regex [duplicate]使用正则表达式在 HTML 中查找带有内容的标签 [重复]
【发布时间】:2014-10-10 12:36:54
【问题描述】:

我正在尝试使用正则表达式在 HTML 字符串中查找标签 article 及其所有内容。

我可以成功地将打开标签与 attrs 匹配:<article[^>]*>

我遇到了匹配内容的问题。 (.*?) - this 技术对我不起作用。

请帮忙。

【问题讨论】:

  • 请分享完整信息。你有什么问题?为什么不能使用 HTML parser API?
  • 你在说,c#,你为什么不使用 Linq to Xml。当然我们需要更多关于 xml 结构的细节来回答。
  • 可能值得使用 HTML 敏捷包之类的东西,因为单独使用正则表达式会很棘手htmlagilitypack.codeplex.com
  • 我计划在获得所有必要的标签后使用 Linq2Xml。我尝试解析的页面的 DOM 结构未使用 XElement.Parse 进行解析。

标签: c# regex


【解决方案1】:

一般情况下,您不能使用正则表达式来解析 HTML。但是,在受限制的情况下(即当输入遵循刚性结构时),您可能能够摆脱它。在您的情况下,您可以使用以下正则表达式,前提是:

  • <article> 标签不会自动关闭
  • <article> 元素不包含其他 <article> 后代
  • 字符串 <article</article> 不会在 HTML 中显示为文字。

代码:

var matches = Regex.Matches(html, @"<article.*?</article>", RegexOptions.Singleline);

【讨论】:

    猜你喜欢
    • 2020-12-15
    • 2019-04-15
    • 2018-11-10
    • 2012-12-16
    • 1970-01-01
    • 2013-05-21
    • 2020-11-04
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多