当前位置:编程学习 > C#/ASP.NET >>

正则表达式拆分数组问题请高手指教!!在线等。

            List<string> list = new List<string>();
            Match match = Regex.Match(p_string, @"(?<=" + p_sFormulaName + @"\()(?>((?<o>\()|(?<-o>\))|(?:(?!\))[\s\S]))*)(?(o)(?!))(?=\))", RegexOptions.IgnoreCase);
            if (match.Success)
            {
                MatchCollection mc = Regex.Matches(match.Value, @"[^(),]*(\((?>((?<o>\()|(?<-o>\))|[^()])*)(?(o)(?!))\)[^(),]*)+|[^(),]+");
                foreach (Match mArgs in mc)
                {
                    list.Add(mArgs.Value);
                }
            }

p_string 的值为:JXCCG(jxccg,,0,1,( b.f_typecode = '0001' )  and ( b.f_departcode like '0001%' )  and ( b.f_custcode = '0001' )  and ( b.f_begincode like '0001%' )  and ( b.f_transway like '0001%' )  and ( b.f_flow like '0001%' )  and ( c.f_costcode = '0001' )  and ( b.f_factorycode = '0001' )  and ( b.f_warecode like '0001%' )  and ( b.f_from = '0001' ),0)
可是用正则表达式折分‘,’号成数组后,应该为6个长度的数组,由“JXCCG(jxccg,,”解析返回为5个长度的数据 ",,"没有解析出来,请高手帮我改一下正则表达式, ,,这种情况可能会出现在字符串的任意位置,不固定,谢谢指教!!! --------------------编程问答-------------------- 直接用Split可以取到六组,再处理一下第一个和第六个就可以了
如果能得到哪个列表的话直接Split就可以了 --------------------编程问答-------------------- 有没有正则表达式能实现的写法。我正则表达式不熟,望高手指教! --------------------编程问答-------------------- 不会,帮顶 --------------------编程问答-------------------- 我可能有一点没说清楚。二楼说的Split不适合我,是因为我这里会出现如JXCCG(jxccg,,0,1,SUBSTRING(AB,1,4)in ( 'ab','abc')),SUBSTRING(AB,1,4)in ( 'ab','abc') 是其中的一个参数。  --------------------编程问答-------------------- 搞不懂啊哦 
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,