Возможно, будет проще использовать String.Split для первоначального вырезания URL-адреса на части страницы и строки запроса, а затем снова использовать Split.String для разрезания строки запроса на отдельные части.
var urlSplit = url.Split('?');
var originalURL = urlSplit[0];
var urlRedefined = url;
if(urlSplit.Length == 2)
{
var queryString = urlSplit[1].Split('&');
//your code here
var urlRedefined = String.Format("{0}?{1}",
originalURL,
String.Join("&", queryString);
}
Регулярное выражение может быть излишним для ваших нужд. Кроме того, класс System.Uri
может быть лучше. Его использование покрыто URL, разделенным на C #? .