由于另一个question on here,我几乎得到了我需要的东西,但并不完全。
我正在尝试使用java的String.split()来分解字符串并保留正则表达式分隔符。我的分隔符不是单个字符。例如:
hello {world} this is {stack overflow} and this is my string
需要分成如下数组:
hello
{world}
this is
{stack overflow}
and this is my string
我可以使用{[^}]+}
匹配{和}之间的所有文本,并使用它分割字符串。但我真的需要在{和}之间保留文本。
答案 0 :(得分:9)
尝试分裂这种方式
yourString.split("\\s(?=\\{)|(?<=\\})\\s")
它将在其后面有{
的每个空格或在其前面有}
的空格中分割。
演示
for (String s : "hello {world} this is {stack overflow} and this is my string"
.split("\\s(?=\\{)|(?<=\\})\\s"))
System.out.println(s);
输出
hello
{world}
this is
{stack overflow}
and this is my string