我正在使用正则表达式替换使用以下表达式的span标记内的所有格式,并且有效。
retValue = System.Text.RegularExpressions.Regex.Replace(retValue, @"<span[^>]*>", "<span>");
现在,我想替换一下span标记内的所有格式(“下划线”除外)。例如,在下面的字符串中,我想删除第二个span标记内的格式,但是保留第一个span标记的格式。
string retValue = "<p><span style=\"text-decoration: underline;\">Test Underline</span></P><p><span style="color:blue">blue</span></p>";
所以我的retValue应该是:
retValue = "<p><span style=\"text-decoration: underline;\">Test Underline</span></P><p><span>blue</span></p>";
我尝试使用以下表达式,但它根本不会替代任何内容。我试图了解这段代码有什么问题,以及如何才能达到预期的结果。
retValue = System.Text.RegularExpressions.Regex.Replace(retValue, @"<span[^style=\""text-decoration:underline;>]*>", "<span>");
答案 0 :(得分:-2)
您需要正确转义特殊字符:
var pattern = "\\<span[^style\\=\\\"text\\-decoration\\:underline\\;\\>]*>";
retValue = System.Text.RegularExpressions.Regex.Replace(retValue, pattern, "<span>");