正则表达式拆分数组问题请高手指教!!在线等。
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#