我有一个字符串,应该在"."
(点)和" "
(空格)上拆分。我试过了:
s.split("[\\s\\.]")
但它不起作用,因为它没有正常分割这个字符串 - "123 456 . 11323 1"
。
我应该如何更改正则表达式?
答案 0 :(得分:3)
我想,你想要的是这个:
s.split("[\\s\\.]+");
请注意+
。您似乎不想在每个(!)出现的空格或点上拆分。您希望匹配所有长度的空白或点组合。这就是为什么你必须尽可能多地贪婪地匹配那些角色
答案 1 :(得分:2)
只需使用"[\\s.]+"
作为正则表达式。
答案 2 :(得分:1)
如果你只拆分一个角色,你会得到很多空白。
s.split("[\\s\\.]+")
将产生“123”,“456”,“11323”,“1”。
+
使它将任何空格和点的运行视为单个间隔,而不是在相邻的空格和点之间返回字符串。
在结果的任何一端,你可能仍然会得到空字符串,因为给定" 123"
它会在字符串的开头和“123”之间分开。