【发布时间】:2013-10-11 14:11:23
【问题描述】:
我想按以下方式拆分字符串:
String s = "dotimes [sum 1 2] [dotimes [sum 1 2] [sum 1 3]]"
结果:
{"dotimes", "[sum 1 2]", "[dotimes [sum 1 2] [sum 1 3]]"
我尝试使用这个正则表达式:
s.split("\\s(?=\\[)|(?<=\\])\\s")
但这会导致以下结果:
dotimes
[sum 1 2]
[dotimes
[sum 1 2]
[sum 1 3]]
有什么方法可以使用正则表达式以我想要的方式拆分字符串?
【问题讨论】:
-
括号可以任意嵌套吗?
-
检查this blog post。这个想法是在空白处拆分,然后是平衡的开括号和右括号。
-
@RohitJain:不幸的是,这个技巧在这里行不通,因为 OP 嵌套了方括号。
-
@anubhava 哦!对,错过了那个。
-
@Bec 可能会举例说明正则表达式输出/匹配应该是什么,我不清楚您的期望是什么