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

如何用正则替换数字序列中首次出现的9为88(BigQuery/谷歌表格)

解决方案

BigQuery 实现方式

使用 REGEXP_REPLACE 函数,通过捕获分组精准定位第一个9并替换:

SELECT REGEXP_REPLACE('4191159999', r'^(.*?)(9)(.*)$', r'\188\3') AS result;
  • 正则逻辑:^(.*?) 非贪婪匹配第一个9之前的所有字符,(9) 捕获首次出现的9,(.*)$ 匹配9之后的所有内容
  • 替换规则:用\1(前序内容)+88+\3(后续内容)拼接,仅替换第一个9

谷歌表格 实现方式

使用 REGEXREPLACE 函数,语法类似但反向引用用$标识:

=REGEXREPLACE("4191159999", "^(.*?)(9)(.*)$", "$188$3")
  • 逻辑和BigQuery一致,只是反向引用符号从\换成$,适配谷歌表格的函数规则

你之前尝试的问题说明

  • 第一个正则 (O9;"(9.+?)";"8"):语法格式错误,且9.+?会匹配9加后续部分字符,替换逻辑完全偏离需求
  • 第二个正则 ^\d{2}9+:匹配了前两位数字+第一个9,替换成8自然会删掉前两位,不符合仅替换9的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:37:16