我希望通过“,”或“,”(中文逗号)或“.”将一个字符串分成组。或任何空白字符(如空格或“\n”)。
我是正则表达式新手。 我编写了以下测试用例:
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
为什么当标志组合在一起时它不起作用?当像“,,”这样的东西组合在一起时,我是否应该做更多的事情,使其成为一个完整的符号来 split ?
最佳答案
你可以试试。您需要添加 +
来匹配一个或多个。
[,,.\s]+
这里是demo
<小时/>Quantifiers
量词允许您指定要匹配的出现次数
。如果您使用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
如果不使用+
,则仅使用单个字符来分割字符串。
关于java - 对于 Java 中的 "[,,.\\s]",正则表达式拆分字符串效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25218161/