如何使用C#在标签之间提取字符串?
说我有一个字符串,如下所示:
"Unneeded text Needed Text More unneeded text"
如何仅提取“ 需要的文本 ”? 我猜Regex可能是最简单的方法,但Regex对我来说仍然看起来像象形文字。
Regex regex = new Regex("(.*)"); var v = regex.Match("Unneeded text Needed Text More unneeded text"); string s = v.Groups[1].ToString();
你不需要正则表达式。
你可以使用String.SubString
和String.Split
方法之类的;
string s = "Unneeded text Needed Text More unneeded text"; Console.WriteLine(s.Substring(s.IndexOf("") + "".Length, s.IndexOf("") - s.IndexOf("") - "".Length));
输出将是;
Needed Text
这是一个DEMO 。
看看HTML Agility Pack或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];
如何使用简单的正则表达式:
(?<=).+?(?=<)