从django中的字符串中删除特殊字符

时间:2013-02-07 09:16:53

标签: python django

我想删除电子邮件中的所有特殊字符,例如“@”,“。”并用'下划线'替换它们 在python' unidecode '中有一些功能,但它并没有完全满足我的要求。任何人都可以建议我某种方式,以便我可以在字符串中找到上面提到的字符,并用'下划线'替换它们。

感谢。

3 个答案:

答案 0 :(得分:3)

为什么不使用.replace()

例如

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

并编辑多个你可以做这样的事情

a='testemail@email.com'
replace=['@','.']
for i in replace:
  a=a.replace(i,'_')

答案 1 :(得分:1)

以此为指导:

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

<强>语法:

re.sub(pattern, repl, string, max=0)

答案 2 :(得分: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

一个很棒的字符串工具包放在你的工具包中。

归功于the book