【问题标题】:Ruby Regex to extract domain from email addressRuby Regex 从电子邮件地址中提取域
【发布时间】:2014-05-26 15:44:30
【问题描述】:

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

richardc@mydomain.com 这样正则表达式只返回:mydomain

如果可能的话,解释它是如何/为什么起作用的! 干杯

【问题讨论】:

  • "richardc@mydomain.com".split('@')[1].split('.')[0]

标签: ruby regex email-validation


【解决方案1】:

这里捕获(...)\1 中的域名,并将整个字符串替换为该捕获,这仅在末尾产生域名。

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

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

【讨论】:

  • 我添加了更多信息。此外,您可以使用此链接regex101.com 来获得更多关于您的正则表达式的解释。
【解决方案2】:

如果您想采用解析路线,mail gem 将完成这项工作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2011-12-17
    • 1970-01-01
    相关资源
    最近更新 更多