我的字符串是:
[...]
<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
,但没有真正奏效。
我尝试过搜索,但我不知道如何描述我想要做的事情。
答案 0 :(得分: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
Check this question which some what similar to this and by using html agility pack
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]
等等。
答案 1 :(得分:0)
通过子字符串方法
尝试喜欢
string sub = mainString.Substring(startPosition, endPosition);
答案 2 :(得分:0)
尝试:
Regex rgx = new Regex("^.+?_t_([^\"]+?)\".+?$");
string result = rgx.Replace(yourString, "$1");
说明:它使用^
匹配字符串开头的字符,然后移至_t_
,然后在$1
中进行子匹配,直至"
然后{{ 1}}然后直到结束"
。
整个字符串由子匹配$
替换。
答案 3 :(得分:0)
试试这个:
int index = s.LastIndexOf('_') + 1;
string t = s.Substring(index, s.Length - index);