将文本区域拆分为名称和电子邮件

时间:2013-03-05 13:41:20

标签: ruby regex

我有一个文本区域,用户输入一些电子邮件地址(必填)和姓名(可选)。我如何拆分字符串以获取电子邮件地址和名称的数组(或哈希),同时考虑到它可能包含错误?到目前为止,如果不允许任何名称,我可以将其拆分为数组:

emails = @request_feedback.emails.split("\r\n")
emails.each {|email|
  if (email =~ /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i)
    FeedbackMailer.get_feedback(current_user, email, employee_id).deliver
  end
}

1 个答案:

答案 0 :(得分:0)

您需要使用括号

在正则表达式中使用组
emails.each {|email|
    if (email =~ /\A([\w+\-.]+)@([a-z\d\-.]+)\.[a-z]+\z/i)
       FeedbackMailer.get_feedback($1, email, $2).deliver
    end
}