我想将此字符串str = "hello, ,, one-word. yes - no: yea?"
拆分为
String[] parts = [hello, one-word, yes, no, yea]
到目前为止,我使用str.split("(\\p{Punct}*\\s)+"))
提供parts = [hello, one, word, yes, no, yea]
,str.split("[\\p{Punct}&&[^-]]*\\s"))
提供parts = [hello, one, -, word, yes, -, no, yea]
。
如何拆分str
,保留-
和_
字样,但在其他地方删除它们和其他正则表达式?我还想消除多个标点符号和空格的情况,例如., , ,
。
答案 0 :(得分:4)
答案 1 :(得分:2)
String str = "hello, ,, one-word. yes - no: yea?";
System.out.println(Arrays.toString(
str.split("(\\p{Punct}(?!\\w)|\\s)+")
));
这将为您提供[hello, one-word, yes, no, yea]
答案 2 :(得分:1)
您可以使用以下正则表达式找到所有单词,而不是拆分字符串:
"(?=\w)[-\w]+"