比如:
1X23Y4
1A23B4
……
有什么办把1和2之间的字符串替换成3和4之间字符串啊?c#

解决方案 »

  1.   

     string str = "1X23Y4";
     str = Regex.Replace(str, @"(?<=1)([^2]*)(?=23([^4]*))", "$2");
      

  2.   

    针对你给的字符串写的
    string str=@"1X23Y41A23B4";
    str=Regex.Replace(str,"(?s)1(.*?)23(.*?)4","1$223$24");
      

  3.   

    如果1为变量str1
    2为变量str2
    3为变量str3
    4为变量str4
    这个表达式,你能再帮我写出来吗?我是菜鸟我一写老出错。。
      

  4.   

    string str1 = "1";
                string str2 = "2";
                string str3 = "3";
                string str4 = "4";
                string str = "1X23Y4";
                string pattern = string.Format(@"(?<={0})(((?!{1}).)*)(?={1}{2}((?!{3}).)*{3})", str1, str2, str3, str4);
                str = Regex.Replace(str, pattern, "$3");
              
      

  5.   

    使用正则最好。=======================================================
    .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速开发、整合框架,给用户和开发者最佳的.Net框架部署方案。
    平台博客:[CNBLOGS]http://www.cnblogs.com/huyong 
         [CSDN]http://blog.csdn.net/chinahuyong
    交流QQ:406590790 (请注明:CSDN)
    平台微博:http://t.qq.com/yonghu86
    邮件交流:[email protected]
      

  6.   


    如果Y是两个以上的字符的话,为什么只替换最后一个字符啊?
    比如1X23YY4替换后就变成1Y23YY4而不是1YY23YY4
    如果我想把他们之间的所有字符都换掉需要改一下哪里啊?
      

  7.   

    改下正则            string pattern = string.Format(@"(?<={0})(((?!{1}).)*)(?={1}{2}(((?!{3}).)*){3})", str1, str2, str3, str4);
      

  8.   

    这个"$3"能输出吗? Console.WriteLine()括号面该怎么写啊?