2011-03-03 39 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