正则表达式以匹配由空格或点分隔的多个电子邮件


Regex to match multiple emails separated by space or puncts

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

^('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.

您可以将

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

像 ''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}限制了您可以在^和$之间匹配的电子邮件数量