【问题标题】:Regex to match multiple emails separated by space or puncts正则表达式匹配由空格或点分隔的多个电子邮件
【发布时间】:2014-11-18 17:14:02
【问题描述】:

我需要一个正则表达式来匹配由空格和/或点分隔的多个电子邮件地址。电子邮件地址是一个字符串。我正在尝试这个,但它不起作用

^(\s[[:punct:]])*([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}){1}(\s[[:punct:]])*$

文字可能是这样的:

abcd@abcd.ef, abcd@abcd.ef abcd@abcd.ef

甚至像这样

Lorem ipsum dolor sit abcd@abcd.ef amet, consectetur, abcd@abcd.ef, adipiscing elit。前庭 consectetur fringilla mi ac dignissim。 Nulla at est quam。 abcd@abcd.ef Sed enim。

【问题讨论】:

标签: php regex email-validation


【解决方案1】:

您可以将 ^ 和 $ 锚点替换为不会强制电子邮件同时位于行中的第一个和最后一个的东西......

喜欢\b(字边界)

\b(\s[[:punct:]])*([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}){1}(\s[[:punct:]])*\b

还是什么都没有?

(\s[[:punct:]])*([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}){1}(\s[[:punct:]])*

http://rubular.com/r/AMnr2kzp09

或者干脆

(\b[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}\b)

因为 {1} 限制了您可以在 ^ 和 $ 之间匹配的电子邮件数量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多