Мне нужно регулярное выражение для сопоставления нескольких адресов электронной почты, разделенных пробелами и / или пунктами. Адреса электронной почты в строку. Я пытаюсь это, но это не работает
^(\s[[:punct:]])*([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}){1}(\s[[:punct:]])*$
Текст может быть таким:
Или даже так
Lorem Ipsum Dolor Sit [email protected] Amet, Concectetur, [email protected], Adipiscing Elit. Vestibulum concectetur fringilla mi ac dignissim. Nulla в Est Quam. [email protected] 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} ограничивал количество писем, которые вы можете сопоставить между ^ и $
Других решений пока нет …