gpt4 book ai didi

php - 从字符串中提取美国电话号码

转载 作者:可可西里 更新时间:2023-11-01 12:57:27 25 4
gpt4 key购买 nike

我正在尝试从字符串中提取仅限美国的电话号码。

我浏览了网络/SO,但没有找到适合我需求的解决方案。

老实说,我有 2.5 年的 Web 编程经验,但我不擅长 RegEX。

这里只有我写的RegEX (\d{3}+\-\d{3}+\-\d{4}+)

但它只检测到 589-845-2889

这是我要提取的电话号码。

589-845-2889

(589)-845-2889

589.845.2889

589 845 2889

5898452889

(589) 845 2889

请告诉我如何在 PHP 的单个 Regex 中实现这一壮举。

编辑:

如果您觉得用户可以输入任何其他格式的美国号码,也请提及,并将其也包含在 RegEX 中。

附言:

实际上我正在尝试抓取 Craiglist,用户可能已经以任何可能的格式发布了他们的电话号码。

最佳答案

在 PHP (PCRE) 中,您可以使用基于 conditional subpatterns 的正则表达式:

(\()?\d{3}(?(1)\))[-.\h]?\d{3}[-.\h]?\d{4}

RegEx Demo

  • (\()? 匹配可选的 ( 并在组 #1 中捕获它
  • (?(1)\))条件模式 匹配结束 ) 仅当第 1 组不为空时,即 ( 出现在匹配项的左侧。

关于php - 从字符串中提取美国电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38201863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com