用多个符号拆分字符串,正则表达式

时间:2017-10-01 19:18:35

标签: java regex

正则表达式分割为多个符号String s="He is a very very good boy, isn't he?"

String[] sa = s.split("[!, ?._'@]");
System.out.println(sa.length);
for (String string : sa) {
    System.out.println(string);
}

11
He
is
a
very
very
good
boy

isn
t
he

使用

String[] sa = s.split("[!, ?._'@]+");

10
He
is
a
very
very
good
boy
isn
t
he
正则表达式中的

+即用于一个或多个,但这个空间是如何来的?

1 个答案:

答案 0 :(得分:0)

这是因为split函数在 boy 之后创建了一个数组元素,其中包含逗号,和空格之间的空字符串。

arr = ['He', 'is', 'a', 'very', 'very', 'good', 'boy', '', 'isn', 't', 'he']

该函数可以在分割文本时在逗号和空格之间存在一些文本,从而有效地生成该空字符串。

当您使用+符号时,您将按“组”字符进行拆分,并将逗号和空格作为拆分正则表达式,而不是在这些字符之间生成空字符串。