Ruby Regex 从电子邮件地址中提取域
Posted
技术标签:
【中文标题】Ruby Regex 从电子邮件地址中提取域【英文标题】:Ruby Regex to extract domain from email address 【发布时间】:2014-05-26 15:44:30 【问题描述】:我以前没有使用过正则表达式的真正经验,只是说。 我想从以下格式的电子邮件地址中提取域名。
richardc@mydomain.com 这样正则表达式只返回:mydomain
如果可能的话,解释它是如何/为什么起作用的! 干杯
【问题讨论】:
"richardc@mydomain.com".split('@')[1].split('.')[0] 【参考方案1】:这里捕获(...)
组\1
中的域名,并将整个字符串替换为该捕获,这仅在末尾产生域名。
email = 'richardc@mydomain.com'
domain = email.gsub(/.+@([^.]+).+/, '\1')
# => mydomain
.+
表示任何字符(\n
除外)。所以它基本上匹配整个电子邮件字符串,并使用([^.]+)
捕获域名[除了点之外的任何东西]
【讨论】:
我添加了更多信息。此外,您可以使用此链接regex101.com 来获得更多关于您的正则表达式的解释。【参考方案2】:如果您想采用解析路线,mail
gem 将完成这项工作:
Mail::Address.new("richardc@mydomain.com").domain
【讨论】:
以上是关于Ruby Regex 从电子邮件地址中提取域的主要内容,如果未能解决你的问题,请参考以下文章