C#正则表达式负向前瞻从匹配中排除

在文本的某处我有一个与href的链接

<a href="https://stackoverflow.com/questions/4220722/c-sharp-regular-expressions-negative-lookahead-exclude-from-match/image-CoRRECTME.aspx?ALSO=ME&leaveme=">somelink 

我需要将href attribue中的文本替换为小写,除了 brakets的内容

应该是这样的:

  <a href="https://stackoverflow.com/questions/4220722/c-sharp-regular-expressions-negative-lookahead-exclude-from-match/image-correctme.aspx?also=me&leaveme=">somelink 

我在想这样的东西.. "href=\"([^\"]*[AZ]+[^\"]*)(?:(?<!.*.*)))\""但它不起作用。

谢谢!

如果你还没弄明白,试试这个吧。

 private void test() { string t = @"&test2=<%= MyClass2.Text %>&last_test=nothing"">somelink"; string fixed_string = Regex.Replace(t, "(?<=href=\"|href=\"[^\"]*%>)([^\"]*?)(?=<%|\")", TestMatchEvaluator); } private string TestMatchEvaluator(Match m) { return m.Value.ToLower(); } 

这样的事情对你有用……

 Regex test = new Regex(@"(?<=(href\=""))[^<]+", RegexOptions.Compiled); string htmlCode = @""">somelink"; string result = test.Replace(htmlCode, test.Match(htmlCode).Value.ToLower());