日期:2014-05-17  浏览次数:20943 次

c#利用正则表达式取出括号中的内容
例如(abc)de(fg)hi(jk)等等,长度不定,如何用正则一次取出全部括号里的内容 也就是abc  fg  jk 
------最佳解决方案--------------------

            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);
            }

------其他解决方案--------------------
括号有嵌套么?没有的话很简单
string.Join(" ", Regex.Matches("(abc)de(fg)hi(jk)"), @"(?=\()\w(?<=\))").Cast<Match>().Select(m = > m.Value).ToArray());
------其他解决方案--------------------
 string str = "(abc)de(fg)hi(jk)";
             var ary = Regex.Matches(str, @"(?<=\()((?<gp>\()