C#的字符串替换问题

时间:2011-04-15 13:03:57

标签: c# asp.net

如何在以下网址中删除粗体中的字符串 q = 是固定参数?

http://abc.com/qwe.aspx 问= DIEYeGJgNwvPSJ32ic1sY5x1ZYjOZTQZD9mjWl2EQJ8 = &安培; U = /富/ BOO / kb的

感谢。

5 个答案:

答案 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");

即可删除“q”查询字符串参数

另一种解决方案是Alex建议的解决方案。

答案 4 :(得分:-1)

如果Q是固定参数....

str = str.Replace("q=DIEYeGJgNwvPSJ32ic1sY5x1ZYjOZTQZD9mjWl2EQJ8=", "");

否则我会这样做:

var qa = Request.QueryString;
qa.Remove("q");
var queryString = qa.ToString();