【问题标题】:Regex - Get all href and innerTexts? [duplicate]正则表达式 - 获取所有 href 和 innerTexts? [复制]
【发布时间】:2012-01-27 10:34:41
【问题描述】:

在 C# 中

我正在尝试从文本文件中获取URLs 和InnerTexts,但我无法访问我正在使用的设备上的 DOM 对象(只有文本文件),因此只有 RegEx使用。

<a href="/LinkClick.aspx?fileticket=a random text string">I want this text</a>

我需要整个文本文件中的所有这些集合:

URL = /LinkClick.aspx?fileticket=a random text string
TITLE = I want this text

【问题讨论】:

标签: c# regex


【解决方案1】:

RegEx 来解析 HTML?它在理论上是可行的,但除非你能保证你从漂亮、干净的 XHTML 开始,否则我在这方面并没有取得很大的成功。问题是合法的 HTML 并不总是格式正确,内容可以跨行并且仍然是 HTML,但会通过 RegEx。我建议您找到一些库,可以为您将 HTML 解析为 DOM 树或其他东西,并通过 XPATH 通过生成的 DOM。 C# 有一个 HtmlDocument 类,不是吗?我会在使用 RegEx 之前尝试一下。

【讨论】:

  • 正如我所提到的,我的访问权限有限,无法以任何其他方式解析 HTML。我在 Linux 上运行它的子供电设备。
【解决方案2】:

你可以使用这样的正则表达式:

\<a.+?href=(?<q>["'])(.+?)\k<q>.*?>([^\<]+)

URL 将是第 2 组的值,TITLE 将是第 3 组的值。

如果您的文档是有效的 XHTML,您还可以使用 System.Xml 命名空间中的类来解析您的文档,然后检索所有 &lt;a&gt; 元素。

【讨论】:

    猜你喜欢
    • 2015-10-09
    • 1970-01-01
    • 2016-01-19
    • 2013-03-24
    • 2011-12-11
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多