0

我的字符串是:

[...]
<div class="threads">
<a href="/adgagshsdh_t_54654321654" title="Title 2">
<a href="/adgagsdfdfhsdh_t_44654321654" title="Title 3">
<a href="/adgagsdfhsdh_t_54321654" title="Title 4">
<a href="/adgagsdfhsdfhsdh_t_14654321654" title="Title 5">
[...etc]
</div>
[...]

我想取出除_t_54654321654之外的所有内容,然后除 54654321654 之外的所有内容

最终字符串应如下所示

54654321654

我试过了,indexOf但没有真正奏效。

我尝试搜索,但我不知道如何准确描述我正在尝试做的事情。

4

4 回答 4

4
string whatYouNeed = "/adgadgdfhdsdfgsadfgdsg_t_54654321654".Split('_').Last();

或者

string whatYouNeed = "<a href=\"/adgadgdfhdsdfgsadfgdsg_t_54654321654\" title=\"Title\">"
    .Split('_')
    .Last()
    .Split(new string[] {"\""},StringSplitOptions.RemoveEmptyEntries)
    .First();

但是如果你想处理 HTML 内容,你最好使用 Html Agility Pack

检查这个问题,其中一些与此类似,并使用 html 敏捷包

HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.Load("test.html");
var link = htmlDoc.DocumentNode
                  .Descendants("a")
                  .First(); // assume it is First link tag what you need

string hrefValue = link.Attributes["href"].Value;
string whatYouNeed = hrefValue.Split('_').Last();

对您的评论的答复

但是如果我在字符串中而不是在 test.html 文档中有源代码怎么办?

您可以按如下方式加载 html

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

源代码中还有几十个"<a href"'s不同的数字,我不需要一个特定的,只需要其中一个。

var links = htmlDoc.DocumentNode
                      .Descendants("a").ToList();

以上将返回页面中的所有链接,您可以获得任何您想要的项目links[1]links[3]等等......

于 2013-05-29T04:32:35.703 回答
0

用子串方法试试

喜欢

string sub = mainString.Substring(startPosition, endPosition);
于 2013-05-29T04:28:42.080 回答
0

尝试:

  Regex rgx = new Regex("^.+?_t_([^\"]+?)\".+?$");
  string result = rgx.Replace(yourString, "$1");

说明:它匹配字符串开头的字符,使用^并移动到,然后在任何内容_t_中进行子匹配,直到然后再到结尾。$1""$

整个字符串被 sub-match 替换$1

于 2013-05-29T04:36:48.583 回答
0

尝试这个:

        int index = s.LastIndexOf('_') + 1;
        string t = s.Substring(index, s.Length - index);
于 2013-05-29T04:40:09.860 回答