2010-05-02 82 views
1

我有一个挑战,我希望SO社区能够帮助我。从文档中删除电话号码

我试图解析我的PHP应用程序中的很多html文档,以删除个人详细信息,例如姓名,地址和电话号码。我可以在没有太多麻烦的情况下删除大部分这些细节,但是电话号码对我来说是一个真正的问题。

我的想法是从这些文档中获取文本,并使用正则表达式来识别电话号码并用另一个值替换它们,例如'xxxx'。

我有2个正则表达式,我正在使用一个英国固定电话号码和一个英国手机号码。

但是,当我尝试运行它们对文本它只是返回一个空字符串。

我使用下面的preg_replace代码:

$pattens = array(
     '/^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$/', 
     '/^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$/' 
    ); 

$replace = array('xxxxx', 'xxxxx'); 

//do the search for the numbers. 
$updatedContents = preg_replace($pattens, $replace, $htmlContents); 

目前,这是造成我很多挠头,因为我认为我有这个钉的,但此刻我看不出有什么错误??

我相信这是非常简单的事情。

感谢,

格兰特

+0

你能发表一些示例输入吗? – 2010-05-02 13:49:05

+0

该示例将是下列其中一个+44(0)777 123456或07777123456或+44(0)207 123435等 – 2010-05-02 14:41:52

回答

2

你可能不想anchor你的正则表达式。从开头删除^,从最后删除$

+0

刚刚完成一项测试,它似乎有效,并没有删除所有文本内容。我会做更多的测试,以确保 感谢马克为你提供帮助至今 – 2010-05-02 14:43:06