替换字符串及其下一个字符中的匹配表达式?开机自检操作



我有一个字符串假设一个

  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=)[^&]*

最新更新