如何使用C#?</strong>在<strong>标签之间提取字符串

时间:2013-06-25 13:13:43

标签: c# regex

说我有一个字符串如下:

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

如何仅提取“需要的文字”?我猜Regex可能是最简单的方法,但Regex对我来说仍然看起来像是象形文字。

6 个答案:

答案 0 :(得分:19)

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();

答案 1 :(得分:11)

你不需要正则表达式。

您可以使用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

这是DEMO

答案 2 :(得分:8)

答案 3 :(得分:3)

使用HTMLAgilityPack并让自己头疼。像这样的东西应该这样做:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("html...");

var innerText = doc.DocumentNode.Descendants("strong").Select(x => x.InnerText).SingleOrDefault(); 

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

如何使用简单的正则表达式,如:

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