2006.08.25

Ruby Rails

Ruby on Rails:正規表現で "name <hoge@example.com>" から "hoge@example.com" を抜き出す。

複数の登録ユーザ+未登録ユーザに、一斉にメールを送るため、

ユーザ1 <user1@example.com>
ユーザ2 <user2@example.com>
ユーザ3 <user3@example.com>

というテキストから、各行のメールアドレスの部分だけを取り除くという処理に悩まされる。。。
正規表現よくわからんし。。

どうやらこれでちゃんと目的の動作をしてくれるようだ。

def addresses= address_list
  address_list.split('\n').each do |address|
    if address =〜 /<.+>/
      address = address.scan(/([^@^<\s]+)(@)((?:[-a-z0-9]+\.)+[a-z]{2,})/).to_s
    end
    link_to_users = LinkToUser.create( :to_user_address=>address)
  end
end

でも変なのにもマッチしそうで怖い。。