用另一个值替换查询字符串的一部分
本文关键字:字符串 一部分 查询 替换 另一个 | 更新日期: 2023-09-27 17:50:08
我有这个url http://spdata.com?value=1&rem=288&data=1 ..我想替换rem=288(这个288不是静态的)与其他一些值,如会员=1 .有人能告诉我如何做到这一点。我正在考虑做一个子字符串,然后组合,但不确定是否有一个已经很容易的过程来做到这一点。
谢谢
您可以使用正则表达式。
像这样:
using System.Text.RegularExpressions;
string newUrl= Regex.Replace("http://spdata.com?value=1&rem=288&data=1", @"rem='d*", "membership=1",RegexOptions.IgnoreCase);
这应该适合您。根据您的url模式,这将用另一个值更改所有"rem=x"
。在本例中,它是"membership=1"
,当然您也可以将其设置为动态。
var url = "http://spdata.com?value=1&rem=288&data=1";
var parts = url.Split('&').Select(x =>
{
if (x.Contains("rem=")) return "membership=1";
return x;
});
var result = string.Join("&", parts);
尝试使用这个
string text = "membership=1";
string x = "http://spdata.com?value=1&rem=288&data=1 ";
int y = x.IndexOf("rem=");
string z = x.Substring(y, x.Length - y);
int a = z.IndexOf("&");
string url = x.Substring(0, y) + text + z.Substring(a, z.Length - a);
如果您想要简单,快速和可读的,那么为什么不只是将字符串连接在一起呢?或者使用string。格式的
string key="rem";
string value="288";
string.Format("http://spdata.com?value=1&{0}={1}&data=1", key, value)
Uri uri = new Uri("http://spdata.com?value=1&rem=288&data=1...")
var pairs = HttpUtility.ParseQueryString(uri.Query)
pairs.Remove("rem");
pairs.Add("membership", "1");
var builder = new UriBuilder(uri);
builder.Query = pairs.ToString();
Uri modified = builder.Uri;