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

Google Sheets中无需反向引用匹配连续重复字符的方法

在Google Sheets中替换连续重复字符(无反向引用)

由于Google Sheets采用的RE2正则引擎不支持反向引用,没法直接用(.)\1+这类常规写法,这里给你两个可行的解决方案:

方案一:用Google Apps Script写自定义函数(最简便)

这是最直接高效的方式,脚本里可以用支持反向引用的JavaScript正则:

  1. 打开你的Google表格,点击菜单栏「扩展程序」→「Apps 脚本」
  2. 删除编辑器里的默认代码,粘贴以下内容:
function REMOVE_DUPLICATE_CHARS(input) {
  if (typeof input !== 'string') return input;
  return input.replace(/(.)\1+/g, '$1');
}
  1. 保存脚本(随便起个项目名,比如「字符去重工具」),返回表格
  2. 在目标单元格输入公式:=REMOVE_DUPLICATE_CHARS(A1)(把A1替换成你要处理的单元格)
    这个函数会自动将所有连续重复的字符替换为单个,比如处理ippeʔɒɒf ɒʈ会直接得到ipeʔɒf ɒʈ。

方案二:用内置函数组合(无需脚本)

如果不想用脚本,可以通过拆分、对比、合并的思路实现,只是写法相对繁琐:
假设待处理字符串在A1单元格,使用以下数组公式(输入后按Ctrl+Shift+Enter,新版表格直接回车即可):

=TEXTJOIN("", TRUE, ARRAYFORMULA(IF(TRANSPOSE(SPLIT(REGEXREPLACE(A1,"(.)","$1|"),"|"))=OFFSET(TRANSPOSE(SPLIT(REGEXREPLACE(A1,"(.)","$1|"),"|")),1,0), "", TRANSPOSE(SPLIT(REGEXREPLACE(A1,"(.)","$1|"),"|")))))

原理是先把字符串拆成单个字符的数组,对比每个字符与下一个是否相同,只保留不重复的字符,最后合并成新字符串。但这个公式对超长字符串效率不高,不如自定义函数实用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 13:32:39