正则组的替换
<Open zh-cn="" zh-hk="日期" en-ww=""/>
我想把繁体的日期移到简体zh-cn=""里.变成:
<Open zh-cn="日期" zh-hk="日期" en-ww=""/>
希望是用正则组的方法实现.这样比较不容易出错.
正则组: (?<标签>正则)
Regex reg = new Regex(@"");
MatchCollection match = reg.Matches(str);
foreach (Match m in match)
{
System.Console.WriteLine(m.Groups["标签"].Value);
}
这样是找到匹配的组.
以前用正则都是找匹配.没试过替换.现在想替换.求大神指教.
------解决方案-------------------- string str = @"<Open zh-cn="""" zh-hk=""日期"" en-ww=""""/>";
Regex reg = new Regex(@"(?i)<Open\s*[^>]*?zh-cn=""([^""]*?)""[^>]*?zh-hk=""([^""]*?)""[^>]*?/>");
str = reg.Replace(str, @"(?is)(zh\-cn="")(?=[^<>]*?zh\-hk=""([^""]+))("")", @"<Open zh-cn=""$2"" zh-hk=""$2"" en-ww=""""/>");
Console.WriteLine(str);
------解决方案--------------------
str = Regex.Replace(str, @"(?is)(?=[^<>]*?zh\-hk=""([^""]+))(zh\-cn="")[^""]*("")", delegate(Match m)
{
string s = m.Groups[2].Value;//繁体
//转换简体s
return s + m.Groups[1].Value + m.Groups[3].Value;
});