如何在c#中获得字符串的中心部分
本文关键字:字符串 心部 | 更新日期: 2023-09-27 18:16:20
我需要Rocky44的中心字符串只使用c#
Hi <a href="http://example.com/index.php?action=profile"><span>Rocky44</span></a>
我尝试了一些分割方法,但不能工作
string[] result = temp.Split(new string[] { "<a href=" + "http://example.com/index.php?action=profile" + "><span>" , "</span></a>" }, StringSplitOptions.RemoveEmptyEntries);
例子:
Hi <a href="http://example.com/index.php?action=profile"><span>Rocky44</span></a>
:
Rocky44
使用html解析器。我将给出一个使用htmllagilitypack
的例子string html = @"Hi <a href=""http://example.com/index.php?action=profile""><span>Rocky44</span></a>";
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var text = doc.DocumentNode.SelectSingleNode("//span").InnerText;
你做对了;你只是没有正确转义你的引号:
string[] result = temp.Split(new string[] { "<a href='"http://example.com/index.php?action=profile'"><span>" , "</span></a>" }, StringSplitOptions.RemoveEmptyEntries);
当然,这是假设您的输入总是完全按照给定的格式。正如I4V所提到的,如果您试图做更复杂的事情,HTML解析器可能会派上用场。
如果你只打算得到这种东西(例如这种 HTML),那么我会使用正则表达式。
string HTML = @"Hi <a href="http://example.com/index.php?action=profile"><span>Rocky44</span></a>"
var result = Regex.Match(HTML, @".*<a.*><span.*>(.*)</span></a>").Groups[1].Value;
用IndexOf
法求<span>
和</span>
的索引
然后(调整<span>
的长度)使用String.Substring
方法获得所需的文本。
string FindLinkText(string linkHtml)
{
int startIndex = linkHtml.IndexOf("<span>") + "<span>".Length,
length = linkHtml.IndexOf("</span>") - startIndex;
return linkHtml.Substring(startIndex, length);
}