<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);
            }
这样是找到匹配的组.
以前用正则都是找匹配.没试过替换.现在想替换.求大神指教.

解决方案 »

  1.   

     string str = @"<Open zh-cn="""" zh-hk=""日期"" en-ww=""""/>";
                str = Regex.Replace(str, @"(?is)(zh\-cn="")(?=[^<>]*?zh\-hk=""([^""]+))("")", "$1$2$3");
                Console.WriteLine(str);
               
      

  2.   

     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);
               
      

  3.   

    你这个不是组的形式.我不会改呀.
    像这样的要怎么改正则才有效?
    <Edit zh-cn="1.请 选" zh-hk="1.請選擇數據類型" en-ww="Edit(&amp;U)"/>
      

  4.   

      str = Regex.Replace(str, @"(?is)(?=[^<>]*?zh\-hk=""([^""]+))(zh\-cn="")[^""]*("")", "$2$1$3");
               
      

  5.   

     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;
                });
      

  6.   

    这个不行.
    我的步骤是
    1.找到组一zh-hk内容.
    2.翻译成简体.
    3.替换回组二zh-cn内容.
    有没有像正则组: (?<标签>正则) 灵活点的替换.
      

  7.   

    謝謝.呵呵.反过来zh\-cn到zh\-hk就不行了.
    我自己再看看怎么改.