0

我想获取段落中的所有电子邮件地址。请你帮助我好吗

非常感谢

4

5 回答 5

2

在此处查找电子邮件正则表达式:

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

它甚至有支持电子邮件正则表达式的“官方标准: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 回答