摘录问号的左侧
本文关键字: | 更新日期: 2023-09-27 17:55:34
有没有一种快速的方法可以抓住问号剩下的所有内容?
http://blah/blah/?blah
to
http://blah/blah/
Uri uri = new Uri(@"http://blah/blah/?blah");
string leftPart = uri.OriginalString.Replace(uri.Query,string.Empty);
基本上,你想使用string.Split
:
string url = @"http://blah/blah/?blah";
var parts = url.Split('?');
string bitToLeftOfQuestionMark = parts[0];
看起来你本质上想要获取 URI 的方案、权限和路径。
您可以使用 Uri.GetComponents 方法来实现此目的:
var uri = new Uri("http://blah/blah/?blah");
var result = uri.GetComponents(
UriComponents.SchemeAndServer | UriComponents.Path,
UriFormat.UriEscaped);
// result == "http://blah/blah/"
试试这个:
string httpString = "http://blah/blah/?blah"
int questionMarkLocation = httpString.indexOf('?');
string newString = httpString.Substring(questionMarkLocattion+1);
只是为了给出不同的答案:
var url = "http://blah/blah/?blah";
var leftPart = Regex.Match(url, @"[^?]+").Value;
利用GetLeftPart
UriPartial.Path
:
包括原始 URI 中直至查询或片段分隔符的任何分隔符。
uri.GetLeftPart(UriPartial.Path)