【发布时间】:2010-05-02 13:42:56
【问题描述】:
我遇到了一个挑战,我希望 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);
目前这让我很头疼,因为我以为我已经搞定了,但目前我看不出有什么问题??
我相信这真的很简单。
谢谢,
授予
【问题讨论】:
-
你能发布一些示例输入吗?
-
示例将是以下之一 +44 (0)777 123456 或 07777123456 或 +44 (0)207 123435 等