gpt4 book ai didi

regex - Google表格公式中的多个正则表达式匹配

转载 作者:行者123 更新时间:2023-12-04 06:15:35 30 4
gpt4 key购买 nike

我正在尝试使用 Google Sheets 正则表达式获取给定字符串中连字符前面的所有数字的列表(假设在单元格 A1 中):

=REGEXEXTRACT(A1, "\d-")

我的问题是它只返回第一个匹配项... 我怎样才能获得所有比赛?

示例文本:
"A1-Nutrition;A2-ActPhysiq;A2-BioMeta;A2-Patho-jour;A2-StgMrktg2;H2-Bioth2/EtudeCas;H2-Bioth2/Gemmo;H2-Bioth2/Oligo;H2-Bioth2/Opo;H2-Bioth2/Organo;H3-Endocrino;H3-Génétiq"

我的公式返回 1- ,而我想得到 1-2-2-2-2-2-2-2-2-2-3-3- (作为数组或串联文本)。

我知道我可以使用脚本或其他函数(如 SPLIT )来实现所需的结果,但我真正想知道的是如何获得 re2 正则表达式以在“ REGEX.* ”中返回如此多个匹配项谷歌表格公式。
类似“ g lobal - 第一场比赛后不要返回”选项 regex101.com

我还尝试使用 REGEXREPLACE 删除不需要的文本,也没有成功(我无法摆脱不在连字符之前的其他数字)。

任何帮助表示赞赏!
谢谢 :)

最佳答案

实际上,您可以使用 regexreplace 在单个公式中执行此操作,用捕获组包围所有值,而不是替换文本:

=join("",REGEXEXTRACT(A1,REGEXREPLACE(A1,"(\d-)","($1)")))

基本上它的作用是包围 \d- 的所有实例。使用“捕获组”然后使用正则表达式提取,它会整齐地返回所有捕获。如果你想把它重新连接成一个字符串,你可以使用 join 将它重新打包成一个单元格:

enter image description here

关于regex - Google表格公式中的多个正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43432409/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com