2016-12-12 8 views
1

私はすべての英数字以外の文字を削除したいが、unicodeのエンコードされた文字とアポストロフィを保持したいテキストを持っています。すべての非英数字文字が、私はアポストロフィを保存するために同じを行う方法がわかりません。明らかにre.sub(ur'[^A-Za-z0-9\'], '',text)は、Unicodeでエンコードされた文字を取り除くために機能しません。何か案は?ユニコード符号化文字とアポストロフィ( ')を保持したまま英数字以外の文字を削除するにはどうすればよいですか?

+0

アポストロフィを持つ否定文字クラスの '\ w'はどうでしょうか? – chris85

+2

're.sub(ur" [^ \ w '] + "、"、テキスト、フラグ= re.UNICODE) ' –

答えて

1

あなたは文字クラス内の文字クラスの速記を使用することができます。

re.sub(ur"[^\w']+", "", text, flags=re.UNICODE) 
0

を加えてrere.UNICODEで、あなたはPY2 unicodeまたはPY3 strで作業している場合は、述語関数は、Unicodeの種類を認識しています。だから、あなたができる:

​​

をこれはほぼ確実reを使用するよりも遅いですが、私は完全を期すためにそれを言及したい考え出し。

関連する問題