我正在公司表中根据以下逻辑创建一个新记录:
if company.nil?
Company.create!(name: User.get_company_name(self.email)), domain: User.get_domain(self.email))
end
我想提取要放在公司表中的域名。如果我有nick@nike.com,我想用正则表达式替换'Nike'
中的公司名称。或者,在ryan@ryandrake.com,我希望公司名称是'Ryandrake'
。
我已经有了这个方法,我正在使用提取域,但还没有设法编辑它来提取名称:
def self.get_domain(email_address)
email_address.gsub(/.+@([^.]+.+)/, '1') // Returns 'nike.com' or 'ryandrake.com'
end
将上面的方法修改为只返回'Nike'
或'Ryandrake'
的任何帮助都将非常有用!
您只需执行email_address[/(?<=@)[^.]+/]
即可获得所需的名称。
def self.get_domain(email_address)
email_address[/(?<=@)[^.]+/]
end
示例:
"pavan@gmail.com"[/(?<=@)[^.]+/]
=> "gmail"
DEMO
使用此正则表达式捕获@
和.
:(?<=@)(.*)(?=.)
之间的字母然后用整串替换。
演示
或
gsub(/.+(?<=@)(.*)(?=.).+/, '1')
演示
将捕获组仅用于捕获@
旁边的单词chars。捕获组内的CCD_ 11也有助于捕获CCD_。
email_address.gsub(/.+@([^.]+).+/, '1')
或
email_address.gsub(/.+@([^.]+)..+/, '1')