Regex для сопоставления нескольких писем, разделенных пробелами или пунктами

0

Мне нужно регулярное выражение для сопоставления нескольких адресов электронной почты, разделенных пробелами и/или пунктами. Адреса электронной почты находятся в строке. Я пробую это, но он не работает

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

Текст может выглядеть так:

[email protected], [email protected] [email protected]

Или даже как это

Lorem ipsum dolor sit [email protected] amet, consectetur, [email protected], adipiscing elit. Vestibulum consectetur fringilla mi ac dignissim. Nulla at est quam. [email protected] Sed enim.

Показать ещё 2 комментария
Теги:
email-validation

1 ответ

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} ограничивал количество писем, которые вы могли бы сопоставлять между ^ и $

Ещё вопросы

Сообщество Overcoder
Наверх
Меню