所以我想在任何非字母数字字符上拆分java中的字符串。
目前我一直在这样做
words= Str.split("\\W+");
但是我想在那里留下撇号(“'”)。是否有任何正则表达式来保留撇号但是踢掉剩下的垃圾?谢谢。
答案 0 :(得分:29)
words = Str.split("[^\\w']+");
只需将其添加到角色类即可。 \W
相当于[^\w]
,然后您可以将'
添加到。{/ p>
但请注意,\w
实际上也包含下划线。如果您想要在下划线上进行拆分,则应使用[^a-zA-Z0-9']
代替。
答案 1 :(得分:13)
对于基本英文字符,请使用
words = Str.split("[^a-zA-Z0-9']+");
如果您想要包含带有特殊字符的英语单词(例如fiancé)或使用非英语字符的语言,请使用
words = Str.split("[^\\p{L}0-9']+");