如何在以下网址中删除粗体中的字符串 q = 是固定参数?
http://abc.com/qwe.aspx 问= DIEYeGJgNwvPSJ32ic1sY5x1ZYjOZTQZD9mjWl2EQJ8 = &安培; U = /富/ BOO / kb的
感谢。
答案 0 :(得分:10)
非常简单。我使用System.Uri
类来解析url,然后删除q
查询字符串参数,然后构建一个没有此参数的新url:
var url = new Uri("http://abc.com/qwe.aspx?q=DIEYeGJgNwvPSJ32ic1sY5x1ZYjOZTQZD9mjWl2EQJ8=&u=/foo/boo/kb");
var query = HttpUtility.ParseQueryString(url.Query);
query.Remove("q");
UriBuilder ub = new UriBuilder(url);
ub.Query = query.ToString();
var result = ub.Uri.ToString();
现在result
拥有价值:http://abc.com/qwe.aspx?u=/foo/boo/kb
。
答案 1 :(得分:1)
input = Regex.Replace(input, "q=[^&]+", "")
是一种方法。
答案 2 :(得分:0)
这些职位是否固定?您可以执行一次IndexOf("q=")
和IndexOf("u=")
并使用SubString
两次删除该部分。另一种方法是使用正则表达式。
答案 3 :(得分:0)
也许这个URL来自某个请求,这意味着您在HttpRequest实例中拥有与HttpContext关联的查询字符串。
在这种情况下,您只需调用HttpContext.Current.Request.QueryString.Remove("q");
另一种解决方案是Alex建议的解决方案。
答案 4 :(得分:-1)
如果Q是固定参数....
str = str.Replace("q=DIEYeGJgNwvPSJ32ic1sY5x1ZYjOZTQZD9mjWl2EQJ8=", "");
否则我会这样做:
var qa = Request.QueryString;
qa.Remove("q");
var queryString = qa.ToString();