这是我到目前为止所做的:
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"
。
答案 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 = @"/([^/]*)$";