如何按'+'(方括号内除外)拆分字符串



我的示例字符串:a+[b*a+c]+c+[ab+c]并由'+'分割

拆分后:

a
[b*a+c]
c
[ab+c]

我可以通过将\+(?![^()]*\))作为正则表达式使用到input.split(regex)中来对圆括号执行此操作。但无法计算方括号。我感谢的任何帮助

除了放在右括号]之前的那些,需要负前瞻来匹配+

String str = "a+[b*a+c]+c+[ab+c]";
String[] arr = str.split("\+(?![^\[]*\])");
Arrays.stream(arr)
.forEach(System.out::println);

输出

a
[b*a+c]
c
[ab+c]

最新更新