输入是以逗号分隔的字段列表。解析逗号不被括号包围
这里是一个例子。
tna,performance,ma[performance,3],price
问题是某些“字段”的参数在方括号中指定,而且这些参数也有逗号。
只有当它们位于括号之外时,我可以使用什么正则表达式来打破逗号中的字符串。我想最终的结果是
tna
performance
ma[performance,3]
price
输入是以逗号分隔的字段列表。解析逗号不被括号包围
这里是一个例子。
tna,performance,ma[performance,3],price
问题是某些“字段”的参数在方括号中指定,而且这些参数也有逗号。
只有当它们位于括号之外时,我可以使用什么正则表达式来打破逗号中的字符串。我想最终的结果是
tna
performance
ma[performance,3]
price
试试这个:
"[a-z0-9]*(\\[[a-z0-9\\[\\],]+\\])*"
关闭。零次或多次匹配会在Match集合中为您提供大量空的结果,并且字符类可以匹配任何地方(包括括号内)。试试这个:'(?<=^|,)[a-z] +(\ [[^ \ [\]] + \])*' – JDB
只是一个想法:方括号是正则表达式中的特殊字符。如果在处理前将方括号转换为尖括号,则在处理后将其转换回方括号(如果需要),则您的正则表达式将更易于阅读和维护。然而,会有性能问题。 – JDB
可能重复的[如何拆分字符串','除非','是使用正则表达式括号内?](http://stackoverflow.com/questions/732029/how-to-split-string-by-unless-is -within-brackets-using-regex) – tripleee