所以我不知道很多c#,我有一个javascript背景。
我有一个字符串。
String Url = Adress + "?station_ids=1322&observation_source=3&starttime=[date]"
observation_source=
的“值”(数字)是我想要改变的。例如[ObsSource]
,所以我得到一个这样的字符串:
String Url = Adress + "?station_ids=1322&observation_source=[ObsSource]&starttime=[date]"
我想这样做,所以我可以replace
“[ObsSource]”以我自己的价值来扫描不同的“观察源”
observation_source值可以是1到100之间的任何值。我想象的可能是从“observation_source”替换为下一个“?”。但我不知道从哪里开始。
c#中有正则表达式吗?
编辑:为了澄清,"?station_ids=1322&observation_source=[ObsSource]&starttime=[date]"
不是我自己制作的。我从其他人制作的JSON对象中获取这些URL。我无法更改字符串从发件人看起来如何,就像我拥有它一样。
答案 0 :(得分:1)
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex(@"observation_source=(\d+)");
string url2 = re.Replace(Url, (m) =>
{
return m.Value.Replace(m.Groups[1].Value, "[ObsSource]");
});
答案 1 :(得分:-1)
试试这个:
string address = "www.google.com/";
string url = address + "?station_ids=1322&observation_source=3&starttime=[date]";
var queryStrings = HttpUtility.ParseQueryString(url);
queryStrings.Set("observation_source", "[ObsValue]");
Dictionary<string, string> queryStringsList = new Dictionary<string, string>();
foreach (var key in queryStrings.AllKeys)
{
queryStringsList.Add(key, queryStrings[key]);
}
var newAddress = string.Empty;
foreach (var item in queryStringsList)
{
newAddress = newAddress + item.Key + "=" + item.Value + "&";
}
Console.Write(newAddress);
我知道它不合适,但你可以根据自己的需要改进代码。