2011-03-03 144 views
2

我有一個巨大的文本文件,它是PDF電話帳單的複製和粘貼作業。我需要提取每個電話號碼並將其放入數組中,以便我可以將數字插入到數據庫表中並對其執行一些查詢。使用PHP從字符串或文件中提取多個電話號碼

我正在使用preg_match_all嘗試匹配所有的數字,並失敗悲慘。這裏是我的代碼:

$phone_list = "13:26 (415)332-5555 13:49 (925)398-5555 13:56 (415)294-3333 14:17 (707)538-2222 14:23 (415)233-1111 14:28 (415)294-0000 14:34"; 
preg_match_all('/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/',$phone_list,$matches); 

...其中什麼都不返回。如果我將$ phone_list縮短爲:

$phone_list = "(415)294-0000"; 

...我得到一個結果。我錯過了什麼?

感謝您的幫助!

回答

3

刪除錨點^$ - 它們強制正則表達式匹配整個字符串。

^表示「斷言匹配從字符串的開始處開始」。

$表示「斷言匹配結束於字符串末尾」。

+0

謝謝蒂姆......這正是我所需要的。有時,RegEx對我來說就像梵文。 :) – Claydough 2011-03-03 15:56:50