2016-08-27 9 views
1

からいくつかの句読点を削除「@」ここでPythonの - 私はPythonは、文字列からのみ一部の句読点を削除するのは、私は以外のすべての句読点を削除したいと言うようにしたいテキスト

import string 
remove = dict.fromkeys(map(ord, '\n ' + string.punctuation)) 
sample = 'The quick brown fox, like, totally jumped, @man!' 
sample.translate(remove) 

出力は

The quick brown fox like totally jumped man 
です

しかし、私が欲しいのは選択の句読点を削除する方法この

The quick brown fox like totally jumped @man 

のようなものがあるですテキスト内の句読点をそのまま残しておきます。

+0

私はこのコードの出力にスペースが表示されません。あなたはそれがまさにあなたが得るものだと確信していますか? – TigerhawkT3

答えて

2

ちょうどあなたが置換文字列から触れたくない文字を削除します。

import string 
remove = dict.fromkeys(map(ord, '\n' + string.punctuation.replace('@',''))) 
sample = 'The quick brown fox, like, totally jumped, @man!' 
sample.translate(remove) 

はまた、前者は、あなたの文字列からスペースを削除しますと、私は、'\n''\n 'を変更することに注意してください。

結果:

The quick brown fox like totally jumped @man 
2

str.punctuationにすべての句読点が含まれています。そこから@を削除します。その句読点文字列を取得するたびに''に置き換えてください。

>>> import re 
>>> a = string.punctuation.replace('@','') 
>>> re.sub(r'[{}]'.format(a),'','The quick brown fox, like, totally jumped, @man!') 
'The quick brown fox like totally jumped @man' 
+0

正規表現部分の使い方は? – rksh

関連する問題