如何找到字符串中值的倒数第二个索引?

时间:2015-12-22 10:15:56

标签: c# asp.net

string referrer = "?404;http://stage.hello.com:80/Applications/";

referrer = referrer.Substring(referrer.LastIndexOf("/") + 1);

通过这样做,我得到推荐人值""作为答案。

我希望我的推荐人值为"应用程序/"

我怎样才能做到这一点?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:5)

referrer = referrer.Substring(referrer.Substring(0, referrer.LastIndexOf("/")).LastIndexOf("/") + 1);

答案 1 :(得分:2)

第一个变种:

referrer = Regex.Match(referrer, @"(?!/)[^/]*/[^/]*$").Value;

第二种变体:

referrer = string.Join("/", referrer.Split('/').Reverse().Take(2).Reverse());

答案 2 :(得分:2)

不安全的变体(如果您确定字符串中至少出现了2个值)将是这样的

string referrer = "?404;http://stage.hello.com:80/Applications/";
referrer = referrer.Substring(referrer.LastIndexOf("/", referrer.LastIndexOf("/") - 1) + 1);

安全版本就像这样

int lastIndex = referrer.LastIndexOf("/");
int secondLastIndex = lastIndex > 0 ? referrer.LastIndexOf("/", lastIndex - 1) : -1;
if (secondLastIndex >= 0)
{
    // ...
}
else
{
    // ...
}