【发布时间】:2020-06-09 02:24:38
【问题描述】:
我正在尝试构建一个模式以从“1.2.3”中选择“1.2.”(即选择最后一个数字组之前的每个数字和点)在 Google 表格 中使用 REGEXEXTRACT 表格功能。
我想出了^([0-9]+\.)+ 模式,它大概对应于Perl 和Google/re2 规范。所以,我的代码是:
=REGEXEXTRACT("1.2.3";"^([0-9]+\.)+")
我在https://regexr.com/ 上对其进行了测试,它返回“1.2.” 在https://regex101.com/ 上,它返回“1.2.”作为整个结果,“2.”作为第 1 组。
但在 Google 表格 上,它只返回“2.”。
我认为它与以下任何一个有关:
- “不贪婪”由
REGEXEXTRACT评估(这与 Google/re2 规范相反; - 上面加上它只返回第一组;
我尝试了一种解决方法,以便充分利用上面的第 2 项。因此,我将模式更改为(^([0-9]+\.)+)。
我在https://regexr.com/ 上对其进行了测试,它返回“1.2.”
并在 https://regex101.com/ 上返回“1.2.”作为整个结果和第 1 组。
不幸的是,它会在 Google 表格 中触发 #REF! 错误。
所以,我的问题是什么方法可以在 Google 表格 中贪婪 选择最长的子字符串或变通方法。
【问题讨论】:
标签: regex google-sheets google-sheets-formula re2