如何提取<;strong>;标签使用C#

本文关键字:strong gt 标签 lt 何提取 提取 | 更新日期: 2023-09-27 18:19:52

假设我有一个字符串,如下所示:

"Unneeded text <strong>Needed Text</strong> More unneeded text"

如何仅提取"所需文本"?我猜Regex可能是最简单的方法,但Regex在我看来仍然像象形文字

Regex regex = new Regex("<strong>(.*)</strong>");
  var v = regex.Match("Unneeded text <strong>Needed Text</strong> More unneeded text");
  string s = v.Groups[1].ToString();

如何提取<;strong>;标签使用C#

您不需要regex。

您可以使用String.SubStringString.Split方法,如;

string s = "Unneeded text <strong>Needed Text</strong> More unneeded text";
Console.WriteLine(s.Substring(s.IndexOf("<strong>") + "<strong>".Length, s.IndexOf("</strong>") - s.IndexOf("<strong>") - "<strong>".Length));

输出将为;

Needed Text

这里是演示

看看HTML敏捷包或AngleSharp

使用HTMLAgilityPack,省得头疼。应该这样做:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("html...");
var innerText = doc.DocumentNode.Descendants("strong").Select(x => x.InnerText).SingleOrDefault(); 

举个例子,一个简单的Split就可以做到,例如

var innerText = text.Split('>')[1].Split('<')[0];

使用像这样的简单正则表达式怎么样

(?<=<strong>).+?(?=<)