我应该如何使用正则表达式拆分我的字符串?

时间:2012-01-19 16:42:48

标签: java regex string split

我有一个字符串,应该在"."(点)和" "(空格)上拆分。我试过了:

s.split("[\\s\\.]")

但它不起作用,因为它没有正常分割这个字符串 - "123 456 . 11323 1"

我应该如何更改正则表达式?

3 个答案:

答案 0 :(得分:3)

我想,你想要的是这个:

s.split("[\\s\\.]+");

请注意+。您似乎不想在每个(!)出现的空格或点上拆分。您希望匹配所有长度的空白或点组合。这就是为什么你必须尽可能多地贪婪地匹配那些角色

答案 1 :(得分:2)

只需使用"[\\s.]+"作为正则表达式。

答案 2 :(得分:1)

如果你只拆分一个角色,你会得到很多空白。

s.split("[\\s\\.]+")

将产生“123”,“456”,“11323”,“1”。

+使它将任何空格和点的运行视为单个间隔,而不是在相邻的空格和点之间返回字符串。

在结果的任何一端,你可能仍然会得到空字符串,因为给定" 123"它会在字符串的开头和“123”之间分开。