在文本的某处我有一个与href的链接
<a href="image-CoRRECTME.aspx?ALSO=ME&leaveme=<%= MyClass.Text %>">somelink</a>
除了&lt; %%&gt;的内容之外,我需要将href属性中的文本替换为小写。 brakets
应该是这样的:
<a href="image-correctme.aspx?also=me&leaveme=<%= MyClass.Text %>">somelink</a>
我在想这样的事情...... "href=\"([^\"]*[A-Z]+[^\"]*)(?:(?<!.*<%[^%]*%>.*)))\""
但是它不起作用。
谢谢!
答案 0 :(得分:3)
如果你还没有想出来的话,试试这个。
private void test()
{
string t = @"<a href=""image-CoRRECTME.aspx?ALSO=ME&leaveme=<%= MyClass.Text %>&test2=<%= MyClass2.Text %>&last_test=nothing"">somelink</a>";
string fixed_string = Regex.Replace(t, "(?<=href=\"|href=\"[^\"]*%>)([^\"]*?)(?=<%|\")", TestMatchEvaluator);
}
private string TestMatchEvaluator(Match m)
{
return m.Value.ToLower();
}
答案 1 :(得分:0)
这样的事情对你有用......
Regex test = new Regex(@"(?<=(href\=""))[^<]+", RegexOptions.Compiled);
string htmlCode = @"<a href=""image-CoRRECTME.aspx?ALSO=ME&leaveme=<%= MyClass.Text %>"">somelink</a>";
string result = test.Replace(htmlCode, test.Match(htmlCode).Value.ToLower());