Извлечение адресов электронной почты из блока текста - PullRequest
4 голосов
/ 02 февраля 2009

Как я могу создать массив адресов электронной почты, содержащихся в блоке текста? Я пробовал

addrs = text.scan(/ .+?@.+? /).map{|e| e[1...-1]}

но (что неудивительно) это не работает надежно.

1 Ответ

9 голосов
/ 03 февраля 2009

Как это для (немного) лучшего регулярного выражения

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

Вы можете найти это здесь:

Email Regex

Просто к вашему сведению, проблема с вашей электронной почтой в том, что вы разрешаете только один тип разделителя до или после адреса электронной почты. Вы должны соответствовать «@» в одиночку, если разделены пробелами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...