我想把下面的文本全改成char *choices[] = { 
"1.Add student's info(添加学生生信息)",
"2.Sort data(排序 ",
"3.Print student's report(打印学生信息 ",
"5.Backup data(备份 ",
"6.Restore data(还原 ",
"7.Search students(查询学生信息 ",
"8.Stat Score(统计学生信息 ",
"0.return(返回班级管理菜单",
  };
改成这样:char *choices[] = { 
"1.Add student's info(添加学生生信息)",
"2.Sort data(排序)",
"3.Print student's report(打印学生信息)",
"5.Backup data(备份)",
"6.Restore data(还原)",
"7.Search students(查询学生信息)",
"8.Stat Score(统计学生信息)",
"0.return(返回班级管理菜单)",
  };
使用正则替换\w(\s*)"会把\w也替换了,
应该怎么写?

解决方案 »

  1.   

    string result = Regex.Replace(yourCode,@"(?<=\w)\s*","");
      

  2.   

            static void Main(string[] args)
            {
                string yourCode = @"char *choices[] = { 
                    ""1.Add student's info(添加学生生信息)"",
                    ""2.Sort data(排序            "",
                    ""3.Print student's report(打印学生信息    "",
                    ""5.Backup data(备份            "",
                    ""6.Restore data(还原            "",
                    ""7.Search students(查询学生信息    "",
                    ""8.Stat Score(统计学生信息    "",
                    ""0.return(返回班级管理菜单"",
              };";
                string result = Regex.Replace(yourCode, @"(?<=\w)\s*", "");
                Console.WriteLine(result);
                Console.ReadKey();
            }
      

  3.   

    表达式
     说明
     
    (?<=Expression)
     逆序肯定环视,表示所在位置左侧能够匹配Expression
     
    (?<!Expression)
     逆序否定环视,表示所在位置左侧不能匹配Expression
     
    (?=Expression)
     顺序肯定环视,表示所在位置右侧能够匹配Expression
     
    (?!Expression)
     顺序否定环视,表示所在位置右侧不能匹配Expression
     
    举例:“(?<=Windows )\d+”在匹配“Windows 2003”时,匹配成功,匹配结果为“2003”。我们知道“\d+”表示匹配一个以上的数字,而“(?<=Windows )”相当于一个附加条件,表示所在位置左侧必须为“Windows ”,它所匹配的内容并不计入匹配结果。同样的正则在匹配“Office 2003”时,匹配失败,因为这里任意一串数字子串的左侧都不是“Windows ”。“(?!1)\d+”在匹配“123”时,匹配成功,匹配的结果为“23”。“\d+”匹配一个以上数字,但是附加条件“(?!1)”要求所在位置右侧不能是“1”,所以匹配成功的位置是“2”前面的位置。
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lxcnn/archive/2009/06/14/4268033.aspx
      

  4.   

    (?=Expression)  顺序肯定环视,表示所在位置右侧能够匹配Expression
     
      

  5.   

    Regex.Replace(yourCode, @"(?<=\w+)(\s+)", ")");
      

  6.   

    or
    Regex.Replace(yourCode, @"(\w+)(\s+)", "$1)");
      

  7.   

    最佳答案:(?<=\w)\s*(?=")
    谢谢逍遥兄,结贴