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