正则表达式:如何使用正则表达式(在ruby中)从电子邮件中获取/提取信息?

时间:2010-02-11 22:22:37

标签: ruby regex

我正试图从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 个答案:

答案 0 :(得分:5)

/Email: (.+) <(.+?)@(.+)>/

然后抓住你想要的捕获组。