我有一个字符串
abc dtret
abcd dtret
abcd dtret
abcd tret
abcs ddtret
abcs dtret我需要把它替换为abc
 dtret
abcd
 dtret
abcd
 dtret
abcd
 tret
abcs
 ddtret
abcs
 dtret匹配的正则表达式^(\w+)(\s*)(\w+)就可以可,替换的怎么写?不知道怎么表达回车

解决方案 »

  1.   

    不需要 正则string a = @ "abc dtret
    abcd dtret
    abcd dtret
    abcd tret
    abcs ddtret
    abcs dtret";a = a.Replace(" ", "\r\n");
      

  2.   

    hertcloud(·£DOTNET@C/C++£·时间路上|做个热心人)
    正解
      

  3.   

    多谢楼上,我的实际需求还很复杂,比如我需要把
    abc dtret替换为:dtret(abc){dtret.abc};我可以这样写替换表达式:$2($1){$2.$1}
    但是,如果我需要替换为
    dtret(abc)
    {
    dtret.abc
    };
    我就需要添加回车,我不知道怎写回车。
      

  4.   

    还是不理解LZ的需求,难道插入"\r\n"不可以么?
      

  5.   

    试一下就知道了,如果Regex.Replace(fdsfdsa,@"^(\w+)(\s*)(\w+)",@"$2($1)\r\n{\r\n$2.$1\r\n}"),替换结果是:dtret(abc)\r\n{\r\ndtret.abc\r\n};
      

  6.   

    无需正则
    用for循环
    a = a.Replace(" ", "\r\n ");
    可以搞定
      

  7.   

    Regex.Replace(fdsfdsa,@"^(\w+)(\s*)(\w+)","$2($1)\r\n{\r\n$2.$1\r\n}")去掉后边的@
      

  8.   

    string str = "abc dtret";
    str = System.Text.RegularExpressions.Regex.Replace(str,@"(\w+)(\s+)(\w+)","$3($1)\r\n{\r\n$3.$1\r\n}");
    Response.Write(str);
      

  9.   

    string yourStr = ......;
    string resultStr = Regex.Replace(yourStr, "(.+?)\\s+(.+?)\\b", "$2($1)\\r\\n{\\r\\n$2.$1\\r\\n}\\r\\n", RegexOptions.IgnoreCase);回车表示是
    "\\r\\n"
    或者
    @"\r\n"
      

  10.   

    To:mobydick(敌伯威|我排著队拿著爱的号码牌)
    string yourStr = ......;
    string resultStr = Regex.Replace(yourStr, "(.+?)\\s+(.+?)\\b", "$2($1)\\r\\n{\\r\\n$2.$1\\r\\n}\\r\\n", RegexOptions.IgnoreCase);我测试了一下,这种写法的的输出结果是:
    dtret(abc)\r\n{\r\ndtret.abc\r\n}\r\n
      

  11.   

    //也许写的和我不一样?
    //下面是源代码,执行后结果就是预期内容
    //dtret(abc)
    //{
    //dtret.abc
    //}
    using System;
    using System.Text.RegularExpressions;public class MyClass
    {
        public static void Main()
        {
            string yourStr = "abc dtret";
            string resultStr = Regex.Replace(yourStr, "(.+?)\\s+(.+?)\\b", "$2($1)\r\n{\r\n$2.$1\r\n}\r\n");
            Console.WriteLine(resultStr);
            Console.ReadLine();
        }
    }