java split regex:使用大括号之间的任何文本拆分字符串并保留分隔符

au9on6nz  于 2023-06-25  发布在  Java
关注(0)|答案(1)|浏览(140)

我几乎得到了我需要的感谢另一个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
我能够使用{[^}]+}匹配{和}之间的所有文本,并使用它拆分字符串。但我真的需要保持文本之间的{和}以及。

rjzwgtxy

rjzwgtxy1#

试着从这边分开

yourString.split("\\s(?=\\{)|(?<=\\})\\s")

它将在后面有{的每个空间或前面有}的空间上拆分。

Demo

String text = "hello {world} this is {Stack Overflow} and this is my string";
String[] parts = text.split("\\s(?=\\{)|(?<=\\})\\s"); 

for (String part : parts)
    System.out.println(part);

输出

hello
{world}
this is
{Stack Overflow}
and this is my string

相关问题