所以我一直在网上搜索4个多小时的线索,告诉我如何做到这一点,但我找不到办法去做我想要的一切。 我想要的是输入这个(例如):
word1 ! ?? word2 word3 .. .. word4, word5, word6 !?. word7 !! !
word8 word9 ?
. word10
然后按任意顺序匹配.
,!
和?
以及介于两者之间的任何空格,以便它返回给我:
["word1", "word2 word3", "word4, word5, word6", "word7", "word8 word9", "word10"]
值得一提的是,我希望将String.split()
用于此目的,但任何其他更有效/更简单的方式都会非常受欢迎!
答案 0 :(得分:4)
你可以试试这种方式
String data="word1 ! ?? word2 word3 .. .. word4, word5, word6 !?. word7 !! !" +
"word8 word9 ?" +
". word10";
for (String s:data.split("\\s*([!?.]+\\s*)+")){
System.out.println(s);
}
输出
word1
word2 word3
word4, word5, word6
word7
word8 word9
word10
答案 1 :(得分:2)
试
String s = "word1 ! ?? word2 word3 .. .. word4, word5, word6 !?. word7 !! ! \n word8 word9 ?\n. word10";
String[] a = s.split("(\\s*[!?.\n\r]+\\s*)+");
System.out.println(Arrays.toString(a));
输出
[word1, word2 word3, word4, word5, word6, word7, word8 word9, word10]