从文档中删除电话号码

时间:2010-05-02 13:42:56

标签: php regex parsing

我有一个挑战,我希望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);

目前这让我头疼很多,因为我以为我已经钉了这个,但此刻我看不出有什么问题?

我确信这很简单。

谢谢,

捐赠

1 个答案:

答案 0 :(得分:2)

您可能不希望anchor正则表达式。从开头删除^,从结尾删除$