【问题标题】:Extract sentence from html string using Regular Expression in C#在 C# 中使用正则表达式从 html 字符串中提取句子
【发布时间】:2015-02-10 07:20:59
【问题描述】:

我有一个控件,它返回一个数据表,其中包含 html 代码作为每行中的字符串。我正在尝试使用正则表达式仅提取 HTML 标记中包含的单词

{[h]</span></p><p class="MsoNormal" style="text-align: left;"><span style="color: #ff6600; font-weight: bold;"><span style="font-family: arial, helvetica, sans-serif;">What do they mean today?</span></span></p><p style="text-align: left; margin: 0px;"><span style="font-family: arial, helvetica, sans-serif;">[/h]}

我只想提取句子What do they mean today?或任何包含超过 1 个单词的句子。

我试过 (/w*/s?)* 但似乎只查看字符串的开头而不是整个字符串。我不太擅长正则表达式。任何帮助将不胜感激。

【问题讨论】:

  • 如果您从数据库中解析 HTML 并且数量很多,那么您可能需要使用 Html Agility Pack
  • @AvinashRaj 正则表达式只匹配“p class”。我在想也许试图捕捉“它们是什么意思?(任何句子)
  • @CoderofCode 没有从数据库中读取字符串。不幸的是,我没有选择更改控件返回的内容,否则我只会返回我需要的字符串。我正在处理别人的无证代码。
  • 这不是重点,如果您要处理大量 html,那么最好使用已有的内容,为什么要重新发明轮子?
  • @CoderofCode 哦,好的,我明白你的意思。我将看看 Html Agility Pack。谢谢

标签: c# html regex


【解决方案1】:

您可以使用下面的正则表达式来获取您想要的字符串。

@"(?<=>)[^<>]+(?=<)"

但正则表达式不是解析 html 文件的推荐方式。

DEMO

【讨论】:

  • 谢谢,它有效。我认为更好的方法是使用 Html 敏捷包,而不是像 @CoderofCode 所说的那样与 Regex 进行匹配。再次感谢您的帮助!
猜你喜欢
  • 2017-11-18
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多