【问题标题】:Regex to extract attribute value正则表达式提取属性值
【发布时间】:2011-07-28 10:04:47
【问题描述】:

什么是快速提取 HTML 表格的标题属性值的方法:

...
<li><a href="/wiki/Proclo" title="Proclo">Proclo</a></li>
<li><a href="/wiki/Proclus" title="Proclus">Proclus</a></li>
<li><a href="/wiki/Ptolemy" title="Ptolemy">Ptolemy</a></li>
<li><a href="/wiki/Pythagoras" title="Pythagoras">Pythagoras</a></li></ul><h3>S</h3>
...

所以它会在每一行的字符串中返回 Proclo、Proclus、Ptolemy、Pythagoras,....。我正在使用 StreamReader 读取文件。我正在使用 C#。

谢谢。

【问题讨论】:

  • 你的 html 表格是什么形式的? (ASP 控件、字符串、流、XmlReader、DOM?)
  • *叹息*...stackoverflow.com/questions/1732348/… 第 (1/epsilon) 次。
  • @delnan:好点。但是,链接到的帖子似乎已损坏?它在我的浏览器中显示不正确
  • @sehe:那篇帖子中有许多晦涩难懂的 unicode 字符用于效果、笑声和对some weird meme 的引用。它的目的是看起来坏了。
  • @sehe:当然!别提战争了!

标签: c# html regex


【解决方案1】:

使用下面的正则表达式

title="([^"]+)"

然后使用组浏览匹配的元素。

编辑:我已经修改了正则表达式以涵盖@Staffan Nöteberg 在评论中提供的示例

【讨论】:

  • 例子没问题,大概就够了。但不适用于&lt;li&gt;&lt;a href="/wiki/Proclo" title="Proclo" attr="value"&gt;Proclo&lt;/a&gt;&lt;/li&gt; 或&lt;li&gt;&lt;a title="Proclus" href="/wiki/Proclus"&gt;Proclus&lt;/a&gt;&lt;/li&gt;。
  • @Staffan Nöteberg 好点,现在它也应该涵盖您的示例。
【解决方案2】:

此 C# 正则表达式将查找所有标题值:

(?<=\btitle=")[^"]*

C#代码是这样的:

Regex regex = new Regex(@"(?<=\btitle="")[^""]*");
Match match = regex.Match(input);
string title = match.Value;

正则表达式使用 positive lookbehind 来查找 title 值开始的位置。然后它将匹配所有内容,直到结束双引号。

【讨论】:

  • 好的,我先简化一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 2012-11-26
  • 2020-11-10
相关资源
最近更新 更多