2014-03-13 92 views
0

我有這個網址http://spdata.com?value=1&rem=288&data=1 ..我想用rem = 288(這288不是靜態的)與一些其他的值,如membership = 1。值得告訴我怎麼做這個。 正在考慮做一個子串,然後合併,但不知道是否有一個已經很簡單的過程來做到這一點。用另一個值替換查詢字符串的一部分

感謝

+0

你動態地構建網址是什麼?或者你是否有大量的文本,並且需要替換其中的許多網址? –

回答

2

你可以用正則表達式來做到這一點。

事情是這樣的:

using System.Text.RegularExpressions; 
string newUrl= Regex.Replace("http://spdata.com?value=1&rem=288&data=1", @"rem=\d*", "membership=1",RegexOptions.IgnoreCase); 
+1

非常好,精確。 – user505210

+0

@Agustin非常好的答案兄弟它值得接受的答案和投票:) –

1

這應該you.According到您的URL模式工作,這將改變所有"rem=x"與另一value.In這種情況下"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); 
0

如果你想要方便,快捷性和可讀性,那麼爲什麼不只是在連接字符串一起?或使用string.Format

string key="rem"; 
string value="288"; 
string.Format("http://spdata.com?value=1&{0}={1}&data=1", key, value) 
1

嘗試使用此

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); 
+1

工程太棒了..謝謝 – user505210

0
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; 
相關問題