Ruby Regex从电子邮件地址中提取域名

时间:2014-04-12 12:22:07

标签: ruby regex email-validation

我没有真正的使用正则表达式的经验,只是说。 我想用以下格式从电子邮件地址中提取域名。

richardc@mydomain.com 所以正则表达式只返回:mydomain

如果可能的话,解释它是如何/为什么有效的! 干杯

2 个答案:

答案 0 :(得分:7)

这里捕获(...)\1中的域名,并用该捕获替换整个字符串,这只会在结尾处产生域名。

email = 'richardc@mydomain.com'
domain = email.gsub(/.+@([^.]+).+/, '\1')
# => mydomain

.+表示任何字符(\n除外)。所以它基本上匹配整个电子邮件字符串,并使用([^.]+)捕获域名[除了点之外的任何东西]

答案 1 :(得分:0)

如果您想采用解析路径,则mail gem将完成此工作:

Mail::Address.new("richardc@mydomain.com").domain