2011-08-23 104 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