gpt4 book ai didi

Python - 正则表达式无法处理无效字符列表?

转载 作者:行者123 更新时间:2023-11-30 23:04:51 27 4
gpt4 key购买 nike

我正在为一个项目的电子邮件创建一个验证器。

  email = input("Enter an email address: ")

if re.match("[~!#$%^&*()_+{}:;\']+$", email):
print("Test 7 - Failed! The email has invalid characters!")
test7 = "failed"
else:
print("Test 7 - Passed! The email has no invalid characters!")
test7 = "passed"

如果我输入像anyemail£()@gmail.com 这样的内容,它仍然说它是有效的?我知道这一定是重新匹配的问题,但是有人可以解释一下这个问题吗?

我还尝试使用列表并使用 find 命令来查找特定的无效字符。

最佳答案

您正在检查整个字符串是否由特殊字符组成(因为re.match正在字符串开头搜索模式匹配,并且您有$ 字符串结尾 anchor 位于模式末尾)。

删除+$并使用re.search检查字符串(电子邮件)是否包含至少一个特殊字符

import re
email = 'anyemail£()@gmail.com'
if re.search("[~!#$%^&*()_+{}:;\']", email):
print("Test 7 - Failed! The email has invalid characters!")
test7 = "failed"
else:
print("Test 7 - Passed! The email has no invalid characters!")
test7 = "passed"
# ==> Test 7 - Failed! The email has invalid characters!

参见IDEONE demo

关于Python - 正则表达式无法处理无效字符列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33510733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com