用另一个值替换查询字符串的一部分

本文关键字:字符串 一部分 查询 替换 另一个 | 更新日期: 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;