我想分割以下字符串:
"VALUE:VALUE,VALUE:[VALUE1,VALUE2,VALUE3],VALUE:VALUE"
进入
"VALUE:VALUE"
"VALUE:[VALUE1,VALUE2,VALUE3]"
"VALUE:VALUE"
我预计:
String[] elements = text.split("(?<!\\[),|,(?!\\])");
让我明白,因为我认为这意味着如果它之前或之后有括号,它就不会匹配逗号,但会返回:
"VALUE:VALUE"
"VALUE:[VALUE1"
"VALUE2"
"VALUE3]"
"VALUE:VALUE"
有什么想法可以做到这一点吗?
最佳答案
如果您没有任何嵌套的可能性,请尝试此正则表达式:
String[] elements = text.split(",(?![^\\[]*\\])");
这与后面没有 ]
且前面没有任何 [
的逗号匹配。
关于java - 如何拆分包含lookbehind和lookahead的正则表达式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22324498/