段落内のすべてのメールアドレスを取得したい。手伝っていただけませんか
どうもありがとう
メールの正規表現については、こちらをご覧ください。
http://www.regular-expressions.info/email.html
電子メールの正規表現をサポートする「The Official Standard: RFC 2822」さえあります。
preg_match_all関数を使用できます。構文は次のようになります。
//Filter our the email addresses and store it in $emails
preg_match($regexp,$text,$emails);
//Print out the array of emails
print_r($emails);
どこ:
正規表現は、どれだけゆるくしたいか、きつくしたいかによって異なります。自分の基準に合うように独自のものを作成してみてください。ただし、問題がある場合は、Google メールの正規表現を使用できます。
PS 何らかの方法でこれをスパムに使用する予定がないことを願っています。
他の人が示唆しているように、質問にはもっと力を入れてください。
以下は、あなたが求めているものの非常に基本的な実装です。一部の電子メールの種類は無視されますが、あなたが費やした労力と同じ量です.
$matches = preg_match_all(
"/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
$text,
$emails
);
$text
あなたの段落です。
$emails
一致した値の配列です。
<?php
$paragraph="this is test abc@dd.com nobody@dd.co.jp testing";
$pattern="/([\s]*)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*([ ]+|)@([ ]+|)([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,}))([\s]*)/i"; preg_match_all($pattern, $paragraph, $matches);
print_r($matches[0]);
?>
これを試してください:正規表現:/[-.\w]+@[-.\w]+/i