Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php正则表达式:如何获取段落中的所有电子邮件地址_Php_Regex_Email Address - Fatal编程技术网

php正则表达式:如何获取段落中的所有电子邮件地址

php正则表达式:如何获取段落中的所有电子邮件地址,php,regex,email-address,Php,Regex,Email Address,我想获取一段中的所有电子邮件地址。你能帮帮我吗 非常感谢试试这个: 正则表达式:/[-.\w]+@[-.\w]+/i您可以使用该函数。语法如下所示: //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是文

我想获取一段中的所有电子邮件地址。你能帮帮我吗

非常感谢

试试这个: 正则表达式:
/[-.\w]+@[-.\w]+/i

您可以使用该函数。语法如下所示:

//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是电子邮件地址的输出数组
正则表达式可以根据您希望它有多松或多紧而有所不同。试着制作自己的,这样它就会符合你的标准,但如果你有困难,你可以用谷歌电子邮件正则表达式


另外,我希望您不打算以某种方式使用此邮件发送垃圾邮件。

正如其他人所建议的,请在您的问题上投入更多精力

下面是一个非常基本的实现。它确实忽略了一些电子邮件类型,但是嘿,这和你投入的精力是一样的

  $matches = preg_match_all(
    "/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    $text,
    $emails
  );
$text
是您的段落。
$emails
是匹配值的数组

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

它甚至有支持电子邮件正则表达式的“官方标准:RFC2822”。


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

添加regex标记,您将得到其他响应。如果您表明自己已经做出了努力,您可能也会得到更好的响应。这并不是对SO的严格要求,但如果人们觉得他们在帮助您,通常会更愿意回答,而不是用勺子喂您。这是Perl风格的正则表达式,但它确实让您了解了复杂性-。Hoever是一个更实际的开始。这太普通了,会捕捉到“呼叫”之类的东西me@work“,它根本不是电子邮件地址。