26

したがって、英数字以外の文字でJavaの文字列を分割したいと思います。

現在、私はこのようにやっています

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

ただし、アポストロフィ( "'")をそこに保持したいと思います。アポストロフィを保持しながら残りのジャンクをキックする正規表現はありますか?ありがとう。

4

2 に答える 2

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

キャラクタークラスに追加するだけです。\Wと同等で[^\w]あり、これに追加できます'

ただし、\w実際にはアンダースコアも含まれていることに注意してください。アンダースコアでも分割する場合は、[^a-zA-Z0-9']代わりにを使用する必要があります。

于 2012-07-04T16:35:47.140 に答える
19

基本的な英語の文字には、

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

特殊文字(婚約者など)を含む英語の単語を含める場合、または英語以外の文字を使用する言語の場合は、

words = Str.split("[^\\p{L}0-9']+");
于 2012-07-04T16:36:24.743 に答える