这种方法的问题是我在.
$string = "this is a test.email@test.com email address";
preg_match('/\b(\w*@\w*)\b/', $string, $matches);
$matches
的结果是
Array
(
[0] => email@test
)
是否可以更改正则表达式以忽略它们?
答案 0 :(得分:2)
尝试使用字符类([...]
)。您也可能想要使用一个或多个量词(+
):
preg_match('/\b([\w.]+@[\w.]+)\b/', $string, $matches);
您可以添加您想要匹配的任何其他字符(例如-
或+
)。
答案 1 :(得分:0)
.
不是\w
的一部分。将您的RegEx更改为:\b([\w.-]+@[\w.-]+)\b
。