2011-08-23 90 views
2

我在php(preg_match_all)中遇到了一些正则表达式的麻烦。PHP preg_match_all正则表达式怪异

我使用下面的代码来查找<封装邮件>:,即:

preg_match_all("<[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})>:", $body,$matches); 

出于某种原因,PHP在结肠以下错误吹起来:

Warning: preg_match_all() [function.preg-match-all]: Unknown modifier ':' in...

任何帮助将不胜感激,因为我不是正则表达式大师,并且只是拉头发。

回答

7

您需要使用定界符EX:

preg_match_all('/<[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})>:/', $body,$matches); 

/我加两端告诉PHP在正则表达式的开始和结束。

+0

返回以下内容:警告:preg_match_all()[function.preg-match-all]:分号不能是 – SuperMykEl

+0

中的字母数字或反斜杠,正在查看您的代码。它做到了。 – SuperMykEl

+0

我如何获得电子邮件地址作为整体返回,而不是数组中的单个部分? – SuperMykEl