PHP preg_match_all正则表达式怪异

Sup*_*kEl 2 php regex

我在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);
Run Code Online (Sandbox Code Playgroud)

出于某种原因,PHP在冒号处爆炸,出现以下错误:

警告:preg_match_all()[function.preg-match-all]:未知修饰符':'in ...

任何帮助都将非常感激,因为我不是正则表达的大师,而且我只是脱毛了.

Pau*_*aul 7

你需要使用delimeters EX:

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

请参阅/我在两端添加的内容,告诉PHP正则表达式的开始和结束位置.