求一个建单的正则表达式,
字符串 str="aaabbbccdd sdfsdfads  =new ABCD();DDDDGFGFDdsf"我需要一个正则表达式,取出其中的ABCD,即取出"new "与"()"中间的字符串。谢谢。
PS:找一个文件中的类名。文件太大,不想手工找。

解决方案 »

  1.   


                string str = "aaabbbccdd sdfsdfads  =new ABCD();DDDDGFGFDdsf";
                Console.WriteLine(Regex.Match(str,@"new\s*(.*)\(\)").Groups[1].Value);
      

  2.   

    1楼的没错。可以查出我要的ABCD。但是现在输出的是两个内容new ABCD()
    ABCD我是遍历Groups的内容。你的代码是直接写 Groups[1].Value 
    所以按你的代码是直接得到了我要的ABCD。现在我不明白的是 string str="aaabbbccdd sdfsdfads  =new ABCD(); W=new W();";  时,得到的数据是
    ABCD(); W=new W
    我想得到的是  
    ABCD 
    W------------
    即能明确得到这个字符串中某个范围内的数据组。
    但是这个正则只得到一个数据。
      

  3.   


                string str = "aaabbbccdd sdfsdfads  =new ABCD(); W=new W();";
                foreach (Match match in Regex.Matches(str, @"new\s*([^\(\)]*)\(\)"))
                {
                    Console.WriteLine(match.Groups[1].Value);
                }
    /*
    输出:
    ABCD

    */
      

  4.   

    (?<=new)(.*?)(?=\()
    测试通过