PHP 特定字符之前和之后的子字符串,直到空格、逗号...?

我正在尝试抓取一封电子邮件。假设我有一个很长的字符串:


$str = "this is the email query@stackoverflow.com which you might want to scrape";

$needle_1 = "@";

$needle_2 = array("[ ]","[,]","["]");

我想提取电子邮件。我认为使用@是解决方案。 所以基本上,我需要获取@之前和之后的所有字符,直到空格、逗号或"。


目前最好的试用是:


$string = 'this is the email query@stackoverflow.com which you might want to scrape';

$template = "/[\w]+[@][\w]+[.][\w]+/";

preg_match_all($template, $string, $matches);

var_dump($matches);

我怎样才能做到这一点?



德玛西亚99
浏览 78回答 2
2回答

千巷猫影

我认为它看起来更好  $string = 'this is the email query@stackoverflow.com which you might want to scrap';  $template = "/[\w]+[@][\w]+[.][\w]+/";  preg_match_all($template, $string, $matches);  var_dump($matches);

鸿蒙传说

您应该为此创建一个正则表达式:<?php&nbsp;&nbsp; &nbsp; $str = "this is the email query@stackoverflow.com which you might want to scrap";&nbsp; &nbsp; $pattern = '/[a-z0-9_\-\+\.]+@[a-z0-9\-]+\.([a-z]{2,4})(?:\.[a-z]{2})?/i';&nbsp; &nbsp; preg_match_all($pattern, $str, $matches);&nbsp; &nbsp; var_dump($matches[0]);?>
打开App,查看更多内容
随时随地看视频慕课网APP