可以用正则表达式来替换
Regex re = new Regex("(?<=id=).*?(?=&)", RegexOptions.None); string result = re.Replace("default.aspx?id=15&kinds=4&username=%23d%8", "18");
是个好主意,如果ID在中间或末尾,这个正则怎么改?
@happydaily:
那就添加个匹配文本末尾 $
(?<=id=).*?(?=&|$)
@快乐乔巴: 能否再帮我写一个,把这个键和值找全的,也就是我要删除这个参数和值,在首位置(前面是?)要把后一个&也找出来,怎么写
也可以手动构建参数
var nvs=Request.QueryString; nvs["id"] = "18"; string par = string.Join("&", nvs.AllKeys.Select(s => string.Format("{0}={1}", s, nvs[s]))); Response.Redirect("default.aspx?" + par);
System.NotSupportedException: 集合是只读的。
@happydaily:
那转换一下
var nvs = Request.QueryString; var dicReq = nvs.AllKeys.ToDictionary(k => k, v => nvs[v]); dicReq["id"] = "18"; string par = string.Join("&", dicReq.Select(s => string.Format("{0}={1}", s.Key,s.Value))); Response.Redirect("default.aspx?" + par);
@Qlin: C#有自带处理参数替换或删除的方法吗?