2012-07-04 13 views
16

したがって、英数字以外の文字にjavaで文字列を分割したいとします。私はそこにアポストロフィ(「'」を)維持したいしかしアポストロフィを除くすべての非英数字にJava文字列を分割

現在、私はこの

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

ようにそれをやってきました。アポストロフィを保存するが、残りのジャンクを蹴る正規表現はありますか?ありがとう。

答えて

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

文字クラスに追加するだけです。 \Wは​​に相当し、'を追加できます。

ただし、\wにも実際に下線が含まれています。アンダースコアで分割したい場合は、代わりに[^a-zA-Z0-9']を使用する必要があります。基本的な英語の文字の

+0

確かに、彼らはすでに '\ W'を使っていたので、私はそれを保存することを選択しました。しかし、私はそれについてのメモを追加しました。 – Amber

+3

'a-zA-Z'は英語の文字に対してのみ機能します。もっと一般的なアプローチは '\ p {L}'です。あなたは本当にそのバックスラッシュを逃れるべき混乱を減らすためにBTW。 –

11

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

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

を使用し、

words = Str.split("[^\\p{L}0-9']+"); 
で行きます
関連する問題