0

段落内のすべてのメールアドレスを取得したい。手伝っていただけませんか

どうもありがとう

4

5 に答える 5

2

メールの正規表現については、こちらをご覧ください。

http://www.regular-expressions.info/email.html

電子メールの正規表現をサポートする「The Official Standard: RFC 2822」さえあります。

于 2010-08-29T05:29:23.003 に答える
0

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);

どこ:

  • $regexp はメールの正規表現です
  • $text はテキストの段落です
  • $emails は、電子メール アドレスの出力配列です。

正規表現は、どれだけゆるくしたいか、きつくしたいかによって異なります。自分の基準に合うように独自のものを作成してみてください。ただし、問題がある場合は、Google メールの正規表現を使用できます。

PS 何らかの方法でこれをスパムに使用する予定がないことを願っています。

于 2010-08-29T05:05:00.887 に答える
0

他の人が示唆しているように、質問にはもっと力を入れてください。

以下は、あなたが求めているものの非常に基本的な実装です。一部の電子メールの種類は無視されますが、あなたが費やした労力と同じ量です.

  $matches = preg_match_all(
    "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    $text,
    $emails
  );

$textあなたの段落です。 $emails一致した値の配列です。

于 2010-08-29T05:24:05.933 に答える
0
<?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]);
?>
于 2010-08-29T05:31:47.800 に答える
-1

これを試してください:正規表現:/[-.\w]+@[-.\w]+/i

于 2010-08-29T05:04:48.050 に答える