从电子邮件地址提取域名的Ruby正则表达式

3
我以前没有使用正则表达式的实际经验,只是说一下。 我想从以下格式的电子邮件地址中提取域名。
richardc@mydomain.com 因此,正则表达式应返回:mydomain
如果可能的话,请对其如何/为什么起作用进行说明! 干杯

"richardc@mydomain.com".split('@')[1].split('.')[0] - Raj
2个回答

7

这里使用正则表达式捕获(...)中的域名,放在组\1中,然后用该捕获替换整个字符串,从而仅得到末尾的域名。

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

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


我添加了更多信息。此外,您可以使用此链接http://regex101.com/来获取有关您的正则表达式的更多解释。 - Sabuj Hassan

0
如果您想采用解析路径,那么 mail gem 可以胜任此任务:
Mail::Address.new("richardc@mydomain.com").domain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接