繁体   English   中英

如何用'+'分割字符串,方括号内除外

[英]How to split string by '+' Except inside square brackets

我的示例字符串: 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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM