Regex: Как вы получаете / извлекаете информацию из электронной почты, используя регулярные выражения (в рубине)? - PullRequest
3 голосов
/ 12 февраля 2010

Я пытаюсь извлечь информацию из адреса электронной почты, например, в ruby:

Email: Joe Schmo <joeschmo@abc123.com>

, чтобы получить эти три переменные:

name = ?
email = ?
domain = ?

Я пытался искать везде, но не могу найти, как это сделать правильно. Вот что у меня есть:

the_email_line = "Email: Joe Schmo <joeschmo@abc123.com>"

name = (/^Email\: (.+) <(.+)>@[A-Z0-9.-]+\.(.+)/).match(the_email_line)[1]
email = (/^Email\: (.+) <(.+)>@[A-Z0-9.-]+\.(.+)/).match(the_email_line)[2]
domain = (/^Email\: (.+) <(.+)>@[A-Z0-9.-]+\.(.+)/).match(the_email_line)[3]

Есть идеи, как правильно получить эти три переменные?

1 Ответ

5 голосов
/ 12 февраля 2010
/Email: (.+) <(.+?)@(.+)>/

Затем возьмите то, что вы хотите, из групп захвата.

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