例如(abc)de(fg)hi(jk)等等,长度不定,如何用正则一次取出全部括号里的内容 也就是abc  fg  jk 

解决方案 »

  1.   

    括号有嵌套么?没有的话很简单
    string.Join(" ", Regex.Matches("(abc)de(fg)hi(jk)"), @"(?=\()\w(?<=\))").Cast<Match>().Select(m = > m.Value).ToArray());
      

  2.   


                string source = "(abc)de(fg)hi(jk)";
                Regex reg = new Regex(@"(?is)(?<=\()[^\)]+(?=\))");
                MatchCollection mc = reg.Matches(source);
                foreach (Match m in mc)
                {
                    MessageBox.Show(m.Value);
                }
      

  3.   

     string str = "(abc)de(fg)hi(jk)";
                 var ary = Regex.Matches(str, @"(?<=\()((?<gp>\()|(?<-gp>\))|[^()]+)*(?(gp)(?!))").Cast<Match>().Select(t => t.Value).ToArray();