2016-11-16 1 views
1

これは他の言語でこれを行うことに関する投稿がたくさんあるようですが、Pythonでどうやって(私は2.7を使っていますか)わかりません。Pythonで特定のユニコード文字を置き換えたり削除したりする

明確にするために、私は理想的には、特定の特定の文字を置き換えることができるだけで、ユニコードで文字列を保持したいと思います。例えば

thisToken = u'tandh\u2013bm' 
print(thisToken) 

は、中央のMダッシュ付き単語を印刷します。私はちょうどmダッシュを削除したいと思います。 (しかしはインデックスを使用していない、私はこれらの特定の文字を見つけるこれのどこを行うことができるようにしたいので。)

私は他の文字とあなたのようなreplaceを考えてみてください:

newToke = thisToken.replace('\u2013','') 
print(newToke) 

それちょうど動作しません。どんな助けも大歓迎です。 Seth

+0

は、すべての文字列リテラルは自動的にユニコードであり、それがここに役立っているだろう(しかし、いくつかの文字列がバイトする必要があるとき、驚きのためにあなたを見て使用することができます彼らのための 'b'接頭辞)。 – RemcoGerlich

答えて

5

置換する文字列もUnicode文字列である必要があります。試してみてください:

newToke = thisToken.replace(u'\u2013','') 
+1

実際には、2番目の引数が 'u'''でもあればおそらく最高でしょう:-) – RemcoGerlich

0

あなたはこの記事で答えを見ることができます:How to replace unicode characters in string with something else python?

は、Unicode文字列をデコードします。それはだと仮定すると、UTF-8でエンコードされた:

str.decode("utf-8") 

呼び出し方法を交換し、その最初の引数としてそれをUnicode文字列を渡すようにしてください:

str.decode("utf-8").replace(u"\u2022", "") 

エンコードバックUTF-8に、必要に応じて:あなたは、ファイルの先頭に__future__インポートunicode_literals`から `使用する場合

str.decode("utf-8").replace(u"\u2022", "").encode("utf-8") 
関連する問題