我有一个字符串假设一个
http://www.whitelabelhosting.co.uk/flight-search.php?dept=any&journey=R&DepTime=0900
现在我正在做的是在 C 夏普
string linkmain = link.Replace("&DepTime=", "&DepTime=" + journey);
但是时间被添加为09000900
在以下情况下
string linkmain = link.Replace("Journey=", "Journey="+journey);
旅程添加为 RR
所以我必须得到 R 的值,该值在 Journer=?和部门时间=?
每次都不相同,那么如何在更换期间获得它们,因为它们就在何处之后? 标志被标记
这是一个后置操作,因此参数不同,例如
旅程:
R
米
O
和时间:
0900 , 1200 , 0400
使用 HttpUtility.ParseQueryString(url) 将返回 NameValueCollection。然后,您可以循环此集合以根据需要操作数据,并从中构建新 URL。
https://msdn.microsoft.com/en-us/library/ms150046(v=vs.110).aspx
您可能想尝试以下正则表达式。正则表达式 101 链接
((?:?.*?&|?)journey=)[^&]*
尝试以下代码来替换 replacement
string url = "http://www.whitelabelhosting.co.uk/flight-search.php?dept=any&journey=R&DepTime=0900";
string newUrl = Regex.Replace(url, @"((?:?.*?&|?)journey=)[^&]*", "$1"+"replacement");
请记住将以下内容添加到您的文件中:
using System.Text.RegularExpressions;
您可以使用以下正则表达式对DepTime
执行相同的操作:
((?:?.*?&|?)DepTime=)[^&]*