试图用Regex获取URL的最后一部分

时间:2012-11-13 22:27:01

标签: c# regex

这是我到目前为止所做的:

string s = @"http://www.s3.locabal.com/whatever/bucket/folder/guid";
string p = @".*//(.*)";
var m = Regex.Match(s, p);

但是,这会返回"www.s3.locabal.com/whatever/bucket/folder/guid"

4 个答案:

答案 0 :(得分:16)

使用Uri类来解析网址:

new Uri(s).Segments.Last()

答案 1 :(得分:13)

虽然Uri.Segments可能是最好的方法,但这里有一些选择:

string s = "http://www.s3.locabal.com/whatever/bucket/folder/guid";

// Uri
new Uri(s).Segments.Last();

// string
s.Substring(s.LastIndexOf("/") + 1);

// RegExp
Regex.Match(s, ".*/([^/]+*)$").Groups[1];

答案 2 :(得分:1)

你可以使用这个表达式:

"[^/]*$"

这将选择没有前面斜杠的值。

答案 3 :(得分:0)

您可以将p更改为:

string p = @"/([^/]*)$";