【问题标题】:How do I match more than one string separated by single dot如何匹配多个由单点分隔的字符串
【发布时间】:2021-12-09 16:25:08
【问题描述】:

我有以下条件:

  1. 有一个“@”符号;
  2. 在“@”符号之前,可以有一个或多个 由字母、数字和下划线组成的字符串,用 a 分隔 单点。
  3. 在“@”符号之后,可以有两个或多个字符串 由字母、数字和下划线组成,用一个点分隔。
  4. 除了字母、数字、下划线、点和 “@”符号应出现在电子邮件地址中。

例如,您的正则表达式应匹配电子邮件地址,例如: abc@umich.edu, 8ab.c_def9@example.regex.com

但是您的正则表达式不应该匹配: abc@ def., ab..abc@def.com, abc@def

如何在不多次输入\. 的情况下获得多个由一个点分隔的字符串(取决于字符串的数量)?

【问题讨论】:

    标签: python regex


    【解决方案1】:

    我不能低估Python regex Howto 的质量。阅读它将帮助您成为更好的程序员。

    import re
    pattern = re.compile(r'$([a-zA-Z0-9_]+\.)*[a-zA-Z0-9_]+@([a-zA-Z0-9_]+\.)+[a-zA-Z0-9_]+^')
    

    注意事项

    • * 表示零个或多个
    • + 表示一个或多个
    • ^$ 分别是开始和结束以排除任何后缀
    • . 必须用反斜杠转义

    【讨论】:

    • 谢谢! $ 和 ^ 应该交换,否则它工作得很好。
    猜你喜欢
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多