正则表达式(排除)

发布于 2025-01-10 21:57:56 字数 438 浏览 0 评论 0原文

我正在开发一个正则表达式函数来验证电子邮件地址是否有效。一切似乎都有效,但此电子邮件地址“[email protected]”应该返回条件中为“false”,因为它包含下划线。以下是我编写的代码。有没有办法可以从搜索中排除下划线(_)?

import re

def emailCheck(email):
    result = re.search(r'((A-Za-z0-9.[_])*)@((\d?[a-z]?[A-Z]?)*(\b.com\b|\b.edu\b|\b.org\b))', email)
    return bool(result)

I am working on a regex function that verifies if the email address is valid. All seem to work but this email address "[email protected]" should return 'false' in the condition because it contains underscore. The following is the code that I have written. Is there a way I could exclude underscore(_) from my search?

import re

def emailCheck(email):
    result = re.search(r'((A-Za-z0-9.[_])*)@((\d?[a-z]?[A-Z]?)*(\b.com\b|\b.edu\b|\b.org\b))', email)
    return bool(result)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

许久 2025-01-17 21:57:56

您的问题是(A-Za-z0-9.[_])*。这只是任意字符 AZaz0< 的可选列表/code>、9-_

您需要一个范围字符类。它应该是 [A-Za-z0-9.]+ 并添加开始/结束行元转义。

^([A-Za-z0-9.]+)@((\d?[a-z]?[A-Z]?)*(\b.com\b|\b.edu\b|\b.org\b))$

https://regex101.com/r/1Ors2C/1

Your issue is (A-Za-z0-9.[_])*. This is just a optional listing of arbitrary characters A, Z, a, z, 0, 9, -, and _.

You need a character class for ranges. It should be [A-Za-z0-9.]+ and add a start/end line meta escape.

^([A-Za-z0-9.]+)@((\d?[a-z]?[A-Z]?)*(\b.com\b|\b.edu\b|\b.org\b))$

https://regex101.com/r/1Ors2C/1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文