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

2022-09-01 15:15:55

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

目前我一直在这样做

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

但是我想在那里保留撇号(“'”)。是否有任何正则表达式可以保留撇号,但踢其余的垃圾?谢谢。


答案 1
words = Str.split("[^\\w']+");

只需将其添加到字符类中即可。 等效于 ,然后可以将其添加到 。\W[^\w]'

但是,请注意,这实际上还包括下划线。如果您还想在下划线上拆分,则应改用。\w[^a-zA-Z0-9']


答案 2

对于基本英语字符,请使用

words = Str.split("[^a-zA-Z0-9']+");

如果要包含带有特殊字符(如未婚夫)的英语单词或使用非英语字符的语言,请使用

words = Str.split("[^\\p{L}0-9']+");