我不知道这是否可能,我有以下正则表达式 (?
string sTest = "test.aspx?width=100&height=200&";
ltTest.Text = Regex.Replace(sTest, @"(?<=[\?|\&])(?<key>[^\?=\&\#]+)=?(?<value>[^\?=\&\#]*)&",
"< div style='width:$2px; height:$2px; border:solid 1px red;'>asdf</div>");
这正在生成:
test.aspx?<div style='width:100px; height:100px; border:solid 1px red;'>asdf</div><div style='width:200px; height:200px; border:solid 1px red;'>asdf</div>
有任何想法吗?
提前致谢!
首先,.net 有更好的方法来处理您的问题。考虑HttpUtility.ParseQueryString http://msdn.microsoft.com/en-us/library/ms150046.aspx:
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
, and 更换每一对 with <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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)