使用 Google 表格 RE2 删除 2 个字符串之间的所有内容

Posted

技术标签:

【中文标题】使用 Google 表格 RE2 删除 2 个字符串之间的所有内容【英文标题】:Removing everything between 2 strings with Google sheets RE2 【发布时间】:2021-12-17 15:58:50 【问题描述】:

我正在尝试从产品标题中删除某些内容作为 Google 表格的一部分

例如 2015 年约翰纳格莱斯顿黑皮诺,75CL Stella Artois 优质啤酒瓶,1 X 660 毫升 Pepesza Ppsh-40 伏特加汤米枪,1 升

我希望能够从, CLMLL 中删除所有内容。

我遇到的问题是我对正则表达式的了解不够,我正在努力寻找一个学习的好地方!

到目前为止我尝试过的如下

=REGEXREPLACE(A2,"[, ]\QML|CL\E","")

但这不起作用,我认为这是因为[, ] 不是有效部分。

=REGEXREPLACE(A2,"\*\QML|CL\E","")

因为我知道 , 是标题中唯一的标点符号 - 我也尝试过,但没有成功。

【问题讨论】:

【参考方案1】:

你想要得到的是

(?i), .*?[CM]?L

请参阅regex demo。 详情

(?i) - 不区分大小写的标志 , .*? - 逗号、空格,然后是除换行符以外的任何零个或多个字符,尽可能少(由于*?,如果您需要尽可能多的字符,请改用*[CM]?L - CM(可选由于 ?),然后是 L 字符。

但是,您可以简单地从 , + 空格匹配到行尾:

", .*

见this regex demo。这里先匹配第一个逗号+空格,然后匹配字符串的其余部分(行,因为. 默认不匹配换行符)。

见the regular expression syntax accepted by RE2。

【讨论】:

以上是关于使用 Google 表格 RE2 删除 2 个字符串之间的所有内容的主要内容,如果未能解决你的问题,请参考以下文章

何时使用哪个模糊函数来比较 2 个字符串

Google表格十进制数,如何删除逗号并添加零

使用Google Apps脚本删除Google表格中的行

Google表格按2个单独条件过滤

使用=Left的带有子字符串替换文本的Google表格问题

Google表格 - 相当于FOR循环