【问题标题】:removing phone number from a document从文档中删除电话号码
【发布时间】: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 等

标签: php regex parsing


【解决方案1】:

您可能不想anchor 您的正则表达式。删除开头的^ 和末尾的$

【讨论】:

  • 刚刚完成了一项测试,它似乎有效,并没有从内容中删除所有文本。我会做更多的测试,以确保感谢 Mark 到目前为止为您提供的帮助
猜你喜欢
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多