如何在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

如何在c#中获得字符串的中心部分

使用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);
}