我想获取段落中的所有电子邮件地址。请你帮助我好吗
非常感谢
您可以使用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