人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下記文字列から PHP を用いて hoge@hoge.com を取得したいです。綺麗な書き方をご教授ください。(正規表現など)

$read=”******¥nFrom hoge@hoge.com 2005-01-01¥n******¥n******¥n”
$ar= Explode(”¥n”, $read);

for ($i=0 ; $i < 8 ; $i++)
{
$str= $ar[$i];
if (0 == StrNCmp($str, ”From”, 4))
{
$value= SubStr($str, 5);
$pos= StrPos($value, ” ”);
$value= SubStr($value, 0, $pos);

PrintF(”from= [%s]¥n”, $value);
}
}

●質問者: disca
●カテゴリ:コンピュータ 生活
✍キーワード:ar hoge PHP PoS STR
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● haru1234
●20ポイント

http://www.hatena.ne.jp/

はてな

URLはダミーです。


こんな感じでいかがでしょう?


<?php

$read=”******¥nFrom hoge@hoge.com 2005-01-01¥n******¥n******¥n”;

preg_match(”{[!$%&*¥-./0-9;?a-z^_~]+@[¥-.0-9a-z_~]+¥.[¥-.0-9a-z_~]+}”,$read,$parts);

print_r( $parts);

?>


蛇足かもしれませんが(”と¥)は、はてなに登校する際に全角に変換されていますので

コピペで動かしてもうまく動きません。

半角に変換後、動作させてみてください。

◎質問者からの返答

ありがとうございます。「@」「.」を見るのですね!。大変参考になります。

---

To aaa@bbb¥n

CC cc@cc.com

From hoge@hoge.com

のような場合ですとどうなりますでしょうか?


2 ● SAMC
●20ポイント

http://dummy.jp/

URLはダミーです。

キレイかどうかは自信ありませんが、以下の方法でも取り出すことができます。


$read=”******¥nFrom hoge@hoge.com 2005-01-01¥n******¥n******¥n”;

list($data1, $data2, $data3, $data4) = explode(”¥n”, $read);

list($from, $email, $date) = explode(” ”, $data2);

echo $email;


正規表現で取り出す場合は、


$read=”******¥nFrom hoge@hoge.com 2005-01-01¥n******¥n******¥n”;

list($data1, $data2, $data3, $data4) = explode(”¥n”, $read);

eregi(’[_a-zA-z0-9?-]+(¥.[_a-zA-z0-9?-]+)*¥@’ . ’[_a-zA-z0-9?-]+(¥.[a-zA-z]{1,3})+’, $data2, $regs);

echo $regs[0];


でどうでしょう。

◎質問者からの返答

ありがとうございます。「From」が付いている場合のみを取り出したい場合はどうすればよいでしょうか。


3 ● SAMC
●20ポイント

http://dummy.co.jp/

Fromがあるかどうか判断する場合は、以下のように最後の2行をif文の中に入れてはどうでしょうか?


$read=”******¥nFrom hoge@hoge.com 2005-01-01¥n******¥n******¥n”;

list($data1, $data2, $data3, $data4) = explode(”¥n”, $read);

if (eregi(”From”, $data2)) {

eregi(’[_a-zA-z0-9¥-]+(¥.[_a-zA-z0-9¥-]+)*¥@’ . ’[_a-zA-z0-9¥-]+(¥.[a-zA-z]{1,3})+’, $data2, $regs);

echo $regs[0];

}

◎質問者からの返答

ありがとうございます。たいへんスマートです^^。

--

みなさま、ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ