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

标签 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]

知道如何正确获取这三个变量吗?

最佳答案

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

然后从捕获组中抓取你想要的东西。

关于ruby - 正则表达式:如何使用正则表达式(在 ruby​​ 中)从电子邮件中获取/提取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248218/

相关文章:

正则表达式匹配\n 和空格

ruby - ActiveModel::Serializer::CollectionSerializer

javascript - 广泛支持的正则表达式查看后面

regex - Groovy:转义任意(未知)正则表达式

在 Lex 中检查有效的算术表达式(在 C 中)

Python 正则表达式仅捕获特定文本

ruby - Watir 和文本字段自动完成列表

ruby - simplecov 报告覆盖 0.0%

ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗?

ruby - 为什么 Ruby 标准库 Date Module 从 -4712 年开始?