我希望通过","将字符串拆分成组。或","(中文逗号)或"。"或任何空白字符(如空格或" \ n")。
我是regex的新手。 我写下面的测试用例:
String str2="word1 , word2,,word3.word4 word5";
String[] formated=str2.split("[,,.\\s]");
for(int i=0;i<formated.length;i++){
System.out.println("i="+i+ " "+formated[i]);
}
输出结果是:
i=0 word1
i=1
i=2
i=3 word2
i=4
i=5 word3
i=6 word4
i=7 word5
当标志汇集在一起时为什么不起作用?当像&#34; ,,&#34;这样的东西聚集在一起时,我应该做些什么才能让它成为一个完整的标志?
答案 0 :(得分:4)
你可以试试。您需要添加+
以匹配一个或多个。
[,,.\s]+
这是demo
量词可让您指定匹配的 number of occurrences
。如果您使用x+
,则模式会尝试尽可能多地匹配x
。
word1 , word2,,word3.word4 word5
^^^------All three characters are matched at a time
word1 , word2,,word3.word4 word5
^^------both characters are matched at a time
如果您不使用+
,则只使用单个字符来分割字符串。
答案 1 :(得分:3)
使用以下regExp
至split
,因为它允许您从[]
[,,.\\s]+
[]
在括号列表中匹配来自String
的任何单个字符 +
匹配一个或多个匹配项。如果没有+
,它就会像这样溢出
word1 , word2,,word3.word4 word5
^^^ ^^^ ^ ^
123 456 7 8
因此,您在分割后会有8 String
,但是当您添加plus
时,它会将123
和456
统计为单个,因为现在您的regExp能够匹配一个或多个字符出现。