import re
email=input('Email address? ')
if re.match("^[A-Za-z0-9.@]*$",email):
print ('valid')
else:
line = re.sub('anything except for', '', email)
print ('Not valid')
print(line)
如果电子邮件无效,我正在尝试制作一个简单的电子邮件验证程序。在line line = re.sub中有任何方法可以让它替换除列出的字符之外的任何字符。
答案 0 :(得分:1)
使用否定的字符类。
line = re.sub(r'[^A-Za-z0-9.@]', '', email)
[^A-Za-z0-9.@]
会匹配任何字符,但不匹配A-Z
或a-z
或0-9
或点或@
。用空字符串替换这些字符将为您提供所需的输出。
答案 1 :(得分:1)
您可以在与^
之后的内容匹配的字符类中使用^
:
例如,如果您的列表包含['a','b']
line = re.sub(r'[^ab]', '', email)