java字符串拆分在除撇号之外的所有非字母数字上

时间:2012-07-04 16:34:14

标签: java regex

所以我想在任何非字母数字字符上拆分java中的字符串。

目前我一直在这样做

words= Str.split("\\W+");

但是我想在那里留下撇号(“'”)。是否有任何正则表达式来保留撇号但是踢掉剩下的垃圾?谢谢。

2 个答案:

答案 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']+");