• ベストアンサー

正規表現 <>で囲まれたメールアドレスだけを取る方法

<***@bbb.com> <<< 554 5.7.1 <***@hoge.com> と言うような文字列の「メールアドレスだけ」を取りたいのですが、 うまく出来ません。 $_=~ /\<(.*)\>/ とやると、 2行目が << 554 5.7.1 <***@hoge.com となってしまいます。 $_=~ /\s\<(.*)\>/ とすると1行目が取れなくなります・・・ どのように書いたらいいのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

試してませんが以下ではどうですか? /^<[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+>$/ ><< 554 5.7.1 <***@hoge.com となってしまうのは、 /\<(.*)\>/ の「\<」が、「<< 554 5.7.1 <***@hoge.com>」の一番はじめの「<」にひっかっかってしまうためです。

azicyan
質問者

お礼

さっそくやってみます! ありがとうございます!

azicyan
質問者

補足

できましたーー!!! いつもいろいろ検索したりして調べるんですが、 結局コチラに頼ってしまいます(汗 daisuke_dmさん 本当に感謝いたします!!!