正则表达式在两个字符@和之间拆分电子邮件地址。

时间:2013-09-30 02:29:42

标签: ruby-on-rails ruby regex

我正在尝试使用Regex从电子邮件地址中获取公司名称。我正在拆分电子邮件两次。对此有更好的解决方案吗?

  c = "user@company_name.com"
 (c.split("@").last).split(".").first

3 个答案:

答案 0 :(得分:2)

给出了另一种解决方案。

str = "user@company_name.com"[/[^@]+(?=\.)/]

请参阅working demo

答案 1 :(得分:1)

  1. 回答帖子中的问题(编辑前)

    从您的代码判断,您似乎想要提取顶级域名(尽管它与标题相矛盾,这没有意义)。假设如此,这将为您提供顶级域名。

    "user@company_name.com"[/[^.]+\z/]
    # => "com"
    
  2. 解决OP在此回答的评论中另外提到的另一个问题

    "user@company_name.com"[/(?<=@)[^.]+/]
    # => "company_name"
    

答案 2 :(得分:1)

这将为您提供公司名称。

(.*)@(\w+)\.(.*)