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

Google Sheets REGEXREPLACE:如何排除以分号结尾的匹配项

Google Sheets REGEXREPLACE 实现排除分号结尾项拆分的方案

问题说明

需要使用Google Sheets的REGEXREPLACE函数将源文本按大写字母开头分段,但需排除以分号结尾的匹配项——这类项要与前面内容保持在同一行,不能单独拆分。当前正则中的[^;]未达到预期效果。

源文本

Basic medication kit of dentistry Drugs box containing Salbutamol; Glycerol-Trinitrate; Glucagon and Adrenaline

现有公式

=TRIM(REGEXREPLACE(G20,"([A-Z][\w\-]*[^;])",CHAR(10)&"· $1"))

当前结果

· Basic medication kit of dentistry 
· Drugs box containing 
· Salbutamol; 
· Glycerol-Trinitrate; 
· Glucagon and 
· Adrenaline

预期结果

· Basic medication kit of dentistry 
· Drugs box containing Salbutamol; Glycerol-Trinitrate; 
· Glucagon and 
· Adrenaline

解决方案

修正后的公式

=TRIM(REGEXREPLACE(G20, "([A-Z][^A-Z]*(?:;[^A-Z]*)*)", CHAR(10)&"· $1"))

正则解释

  • [A-Z]:匹配每个段落开头的大写字母,作为分段的起始标识。
  • [^A-Z]*:匹配后续所有非大写字母的字符,直到遇到下一个大写字母。
  • (?:;[^A-Z]*)*:非捕获组,允许重复匹配「分号+后续非大写字母字符」的结构,把所有连续的分号结尾项(如Salbutamol;、Glycerol-Trinitrate;)包含在同一个捕获组中,避免被单独拆分。

效果说明

该公式会将连续的分号结尾项与前面内容合并为同一行,仅在独立的大写字母开头短语前插入换行和列表符号,完全符合预期结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:05:59