Во-первых, у .net есть лучшие способы справиться с вашей проблемой. Рассмотрим HttpUtility.ParseQueryString
:
string urlParameters = "width=100&height=200";
NameValueCollection parameters = HttpUtility.ParseQueryString(urlParameters);
s = String.Format("<div style='width:{0}px; height:{1}px;'>asdf</div>",
parameters["width"], parameters["height"]);
Это поможет вам сбежать, так что это лучший вариант.
Далее, к вопросу, ваш код не работает, потому что вы используете его неправильно. Вы ищете пары key=value
и , заменяющие каждую пару на <div width={value} height={value}>
. Таким образом, вы получите множество DIV в качестве значений.
Вы должны сделать более хирургическое совпадение, например (с некоторыми добавленными проверками):
string width = Regex.Match(s, @"width=(\d+)").Groups[1].Value;
string height = Regex.Match(s, @"height=(\d+)").Groups[1].Value;
s = String.Format("<div style='width:{0}px; height:{1}px;'>asdf</div>",
width, height);