在保留这些分隔符的同时拆分具有多个分隔符的字符串

时间:2015-07-08 23:08:28

标签: java regex string split

假设我们有一个字符串:

String x = "a| b |c& d^ e|f";

我想要获得的内容如下:

a
|
b
|
c 
& 
d
^
e
|
f

如何使用x.split(regex)实现此目的?即什么是正则表达式?

我试过这个链接:How to split a string, but also keep the delimiters?

它给出了一个非常好的解释,说明如何使用一个分隔符。 但是,使用和修改它以适应多个分隔符(前瞻和后瞻机制)对于不熟悉正则表达式的人来说并不那么明显。

1 个答案:

答案 0 :(得分:2)

在单词边界之后对可选空格进行拆分的正则表达式

\\b\\s*

请注意\\b检查前面的字符是字母,数字还是下划线,然后匹配字符串将被拆分的任意数量的空白字符。

以下是Java code on IDEONE示例:

String str = "a| b |c& d^ e|f";
String regex = "\\b\\s*";
String[] spts = str.split(regex);
    for(int i =0; i < spts.length && i < 20; i++)
    {
        System.out.println(spts[i]);
    }