1

我只需要使用 C# 的 Rocky44 的中心字符串

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
4

4 回答 4

9

使用 html 解析器。我将举一个使用HtmlAgilityPack的例子

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;
于 2013-05-30T17:42:04.180 回答
3

你在正确的轨道上;你只是没有正确地转义你的引号:

string[] result = temp.Split(new string[] { "<a href=\"http://example.com/index.php?action=profile\"><span>" , "</span></a>" }, StringSplitOptions.RemoveEmptyEntries);

当然,这是假设您的输入将始终采用给定的格式。正如 I4V 所提到的,如果您尝试做更复杂的事情,HTML 解析器可能会派上用场。

于 2013-05-30T17:43:06.653 回答
0

查找索引<span></span>使用该IndexOf方法。

然后(调整 的长度<span>)使用该String.Substring方法获取所需的文本。

string FindLinkText(string linkHtml)
{
    int startIndex = linkHtml.IndexOf("<span>") + "<span>".Length,
        length = linkHtml.IndexOf("</span>") - startIndex;

    return linkHtml.Substring(startIndex, length);
}
于 2013-05-30T17:44:57.767 回答
0

如果你只想得到这种东西(例如这种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;
于 2013-05-30T17:49:19.243 回答