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

我怎样才能做到这一点?

我认为看起来更好

$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 
$str = "this is the email query@stackoverflow.com which you might want to scrap";
$pattern = '/[a-z0-9_-+.]+@[a-z0-9-]+.([a-z]{2,4})(?:.[a-z]{2})?/i';
preg_match_all($pattern, $str, $matches);
var_dump($matches[0]);
?>

最新更新