【问题标题】:Regex for matching email addresses [duplicate]用于匹配电子邮件地址的正则表达式 [重复]
【发布时间】:2019-05-18 05:21:18
【问题描述】:

所以我有一个像这样的正则表达式:

 regex1= re.compile(r'\S+@\S+')

这很好用,但我正在尝试添加字符限制,因此字符总数必须少于 20 个。

我试过re.compile(r'\S+@\S+{5,20}'),但它一直给我一个错误。似乎是一个简单的修复,但看不到我做错了什么。

【问题讨论】:

  • 该语法不是要限制字符串的总长度,它不能在其他一些重复修饰符(?,*,+)之后应用。
  • 鉴于所有可能的变体,要正确地做到这一点并不容易,看看 django 实现的电子邮件验证,它使用 RegEx,git.io/fpxnn

标签: python regex


【解决方案1】:

您不能指定具有特定字符数的贪婪修饰符 (+)(即,\S+{5,20) 不是有效模式)。如果您在 python 中执行此操作,我建议您在字符串上使用len(...) 函数以及正则表达式进行验证。例如:

if regex1.match(email) and (len(email) < 20):
    ...

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多