1

メールから「@」、「.」などの特殊文字をすべて削除したい それらを「アンダースコア」に置き換えます。Python「ユニデコード」にはいくつかの関数がありますが、私の要件を完全には満たしていません。文字列内の上記の文字を見つけて「アンダースコア」に置き換えることができるように、誰かが私に何らかの方法を提案できますか.

ありがとう。

4

3 に答える 3

4

なぜ使用しないの.replace()ですか?

例えば。

a='testemail@email.com'
a.replace('@','_')
'testemail_email.com'

複数を編集するには、おそらくこのようなことができます

a='testemail@email.com'
replace=['@','.']
for i in replace:
  a=a.replace(i,'_')
于 2013-02-07T09:24:11.257 に答える
1

これをガイドとして使用してください。

import re
a = re.sub(u'[@]', '"', a)

構文:

re.sub(pattern, repl, string, max=0)
于 2013-02-07T09:22:37.610 に答える
1

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

ツールキットに入れるのに最適な文字列ユーティリティです。

へのすべての功績

于 2013-02-07T10:00:41.453 に答える