1

多亏了这里的另一个问题,我几乎得到了我需要的东西,但并不完全。

我正在尝试使用 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

我能够使用它匹配 { 和 } 之间的所有文本并{[^}]+}使用它拆分一个字符串。但我真的需要将文本保持在 { 和 } 之间。

4

1 回答 1

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
于 2013-06-04T00:16:50.147 回答