You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

适配Google Sheets REGEXTRACT的巴西手机号正则表达式调整

在Google Sheets中用REGEXTRACT提取HTML里的首个巴西手机号

纯数字格式适配方案

如果优先提取纯数字格式的手机号(包括tel:链接里的纯数字、无分隔符的号码),假设HTML内容在A1单元格,用这个公式:

=REGEXEXTRACT(A1, "(?:tel:)?(0800\d{7}|300[34]\d{4}|400[34]\d{4}|4020\d{4}|(?!23|25|26|29|36|39|52|56|57|58|59|72|76|78)[1-9]{2}[2-5]\d{7})")

公式拆解:

  • (?:tel:)?:匹配可选的tel:前缀,对应示例里的电话链接
  • 0800\d{7}:匹配0800开头的7位纯数字号码
  • 300[34]\d{4}:匹配3003/3004开头的4位纯数字号码
  • 400[34]\d{4}:匹配4003/4004开头的4位纯数字号码
  • 4020\d{4}:匹配4020开头的4位纯数字号码
  • (?!23|25|26|29|36|39|52|56|57|58|59|72|76|78)[1-9]{2}[2-5]\d{7}:匹配XXabcdefgh型纯数字,排除指定的无效区号,且第二位数字为2-5

兼容带分隔符的方案(适配Google Sheets的RE2引擎)

如果要兼容带空格、横杠、点、括号的号码,调整正则适配RE2(Google Sheets使用的引擎),公式如下:

=REGEXEXTRACT(A1, "(?:tel:)?(0800[ .]?\d{3}[ .]?\d{4}|(300[34]|400[34]|4020)[ .-]?\d{4}|(?!23|25|26|29|36|39|52|56|57|58|59|72|76|78)[1-9]{2}[ .()-]?[2-5]\d{3}[ .-]?\d{4})")

公式拆解:

  • 0800[ .]?\d{3}[ .]?\d{4}:匹配0800开头带可选空格/点分隔的号码,比如0800 123 4567、0800.1234567
  • (300[34]|400[34]|4020)[ .-]?\d{4}:匹配XXXXabcd型带可选空格/点/横杠分隔的号码,比如3003-1234、4004 5678
  • (?!23|25|26|29|36|39|52|56|57|58|59|72|76|78)[1-9]{2}[ .()-]?[2-5]\d{3}[ .-]?\d{4}:匹配XXabcdefgh型带可选分隔符的号码,比如(11)2345-6789、11 2345 6789

示例验证

拿你给的三个例子测试:

  1. 示例1:<a href="tel:1123456789" class="btn-tel">(11) 2345-6789</a> → 纯数字方案返回1123456789;兼容方案返回(11) 2345-6789,如果要转纯数字,套个REGEXREPLACE:=REGEXREPLACE(REGEXEXTRACT(A1, "上面的兼容正则"), "[^0-9]", "")
  2. 示例2:<strong>3003-1234</strong> → 纯数字方案返回30031234;兼容方案返回3003-1234
  3. 示例3:<a _ngcontent-iqq-c82="" href="tel:30031234" class="ng-tns-c82-0">3003-1025 </a> → 纯数字方案返回30031234;兼容方案返回3003-1025

注意点

Google Sheets用的是RE2正则引擎,不支持PCRE里的一些高级语法(比如复杂嵌套的环视),所以调整后的正则尽量简化了逻辑,确保能正常运行。如果需要统一输出纯数字,提取后用REGEXREPLACE(结果, "[^0-9]", "")去掉所有非数字字符就行。

内容的提问来源于stack exchange,提问作者Aps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:47:50