日期:2014-05-18  浏览次数:20449 次

求一正则替换,谢谢
对应类似<Font Face='Arial' Color='-16777216' Size='9'>ddddddddddddd</Font>的字符串
其中Face和Color以及Size的顺序可能不一样,Face,Color,Size的值也可能都不一样
将其中的Face和Size替换为固定值face1和size1,Color值不变,即上面的字符串变为:

<Font Face='face1' Color='-16777216' Size='size1'>ddddddddddddd</Font>


谢谢

------解决方案--------------------
一次匹配似乎不行
------解决方案--------------------
得两次匹配,一次有难度
------解决方案--------------------
那要看你对需要替换的源字符串的要求了,如果说只要是<Font...>里的就替换,那么就这样

C# code
string test = "<Font Face='Arial' Size='9' Color='-16777216'>ddddddddddddd </Font>";
string result = Regex.Replace(test, @"(?<=<Font[^>]*?Face=')[^']*(?=')", "face1", RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"(?<=<Font[^>]*?Size=')[^']*(?=')", "size1", RegexOptions.IgnoreCase);