メールから「@」、「.」などの特殊文字をすべて削除したい それらを「アンダースコア」に置き換えます。Python「ユニデコード」にはいくつかの関数がありますが、私の要件を完全には満たしていません。文字列内の上記の文字を見つけて「アンダースコア」に置き換えることができるように、誰かが私に何らかの方法を提案できますか.
ありがとう。
なぜ使用しないの.replace()
ですか?
例えば。
a='testemail@email.com'
a.replace('@','_')
'testemail_email.com'
複数を編集するには、おそらくこのようなことができます
a='testemail@email.com'
replace=['@','.']
for i in replace:
a=a.replace(i,'_')
これをガイドとして使用してください。
import re
a = re.sub(u'[@]', '"', a)
構文:
re.sub(pattern, repl, string, max=0)
Python Cookbook 第 2 版の優れた例
import string
def translator(frm='', to='', delete='', keep=None):
if len(to) == 1:
to = to * len(frm)
trans = string.maketrans(frm, to)
if keep is not None:
allchars = string.maketrans('', '')
delete = allchars.translate(allchars, keep.translate(allchars, delete))
def translate(s):
return s.translate(trans, delete)
return translate
remove_cruft = translator(frm="@-._", to="~")
print remove_cruft("me-and_you@gmail.com")
出力:
me~and~you~gmail~com
ツールキットに入れるのに最適な文字列ユーティリティです。
本へのすべての功績