2012-03-18 9 views
0

私は文字列をフィルタリングし、英語の文字と顔文字を保持するプログラムを持っています。私は:)、D:などの絵文字を保持する正規表現を取得しようとしています。単一の ':'または '('または ')'を取り出します...基本的には ':'と ')'一緒にフィルタリングする必要があります....私のプログラムでは、私は顔文字を保持することができますが、私も取得しています:それと一緒に....あなたは私を助けてくれますか?顔文字を保持する、Java正規表現

String pattern = "[^\\w^\\s^(:))]"; 
Pattern p = Pattern.compile(pattern); 
Matcher m = p.matcher(text); 
text = m.replaceAll(""); 

ありがとうございました。

+0

私たちはすべてIMクライアントやその他のプログラムを嫌い、コードやその他の一般的でないテキストをイメージに置き換えます。最も一般的なものは '8)' – kirilloid

+0

offtopicです:@kirilloid _no、最も一般的なものは '(e)'と '(n)' _ – c69

答えて

1

大括弧の中にグループ化括弧を使用しようとしています。角括弧の中かっこが特別な意味を失うため、これは機能しません。

角括弧は、atomであり、アトムのシーケンスではなく、character classを定義します。代わりに、2つのブランチの代替手段、つまり:と括弧の代わりにDなどを使用し、各ブランチにlook-ahead and look-behindを使用するだけです。

正規表現の構文hereの詳細については、こちらをご覧ください。

また、:-)のようなより複雑な顔文字を考慮する必要があります。

関連する問題