我需要使用正则表达式在Java中拆分字符串,但是我不太确定该怎么做。我必须分开

[Caps][RCaps]C[Caps][RCaps]atalog[Caps][RCaps]


放在方括号内。我不知何故需要获取字符串的所有部分。

预期产量:

[Caps]
[RCaps]
C
[Caps]
[RCaps]
atalog
[Caps]
[RCaps]


方括号内的文本可以是任何东西。在这种情况下,它是“ Caps”和“ RCaps”,但也可以是“ Potato”

最佳答案

您需要做的是在[字符之前和]字符之后进行拆分,这将转换为正则表达式(?=\\[)|(?<=\\])

例:

String string = "[Caps][RCaps]C[Caps][RCaps]atalog[Caps][RCaps]";
String[] result = string.split("(?=\\[)|(?<=\\])");
System.out.println(Arrays.toString(result));


打印:

[[Caps], [RCaps], C, [Caps], [RCaps], atalog, [Caps], [RCaps]]

08-16 19:04