经过大量搜索后,我发现这个正则表达式在字符串中找到了电子邮件:
preg_match_all("/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i", $text, $output);
我怎样才能获得完全相反的效果?我真的需要知道哪些词不是有效的电子邮件地址: - )
答案 0 :(得分:2)
我怎样才能获得完全相反的效果?我真的需要知道哪些词不是有效的电子邮件地址: - )
如果提到的正则表达式对您来说足够有效,请使用preg_replace过滤掉匹配项,剩下的文本将是不匹配的所有内容:
<?php
$text = 'Your text here.';
// replace everything that matches with ''.
$text = preg_replace( "/^[^a-z0-9]+([^_\.-][^a-z0-9]+)^@([^a-z0-9]+([^.-][^a-z0-9]+))+\.[a-z]{2,}/i", '', $text );
echo $text;
答案 1 :(得分:1)
如果您使用preg_replace($pattern, "", $string)
,那么您将获得一个字符串,该字符串已删除了与给定模式匹配的所有内容。然后,您可以对此字符串进行标记(即在其上调用split
)以获取与该模式不匹配的单词列表。