谷歌表格中的正则表达式正向后视

标签 regex google-sheets

我有一个包含交易列表的 Google 表格。我需要在 E 列中隔离 D 列中单词“结束”之后的最多三个单词或数字。正确的正则表达式函数应该是正向后视,但 RE2 不支持它(来源:Using positive-lookahead (?=regex) with re2 )。

此公式在 GSheets 中返回错误:

=REGEXEXTRACT(D1;"(?<=end\s)(\w+)")

所以我的结论是,在这种情况下,正则表达式是一个死胡同。

如何在 GSheets 中获取请求的结果?

最佳答案

您可以在正则表达式中使用捕获组来制作 REGEXEXTRACT只返回捕获的部分:

=REGEXEXTRACT(D1;"end\s*(\w+)")

如果您需要在 end 之后返回 1、2 或 3 个以空格分隔的单词, 用
=REGEXEXTRACT(D1;"end\s*(\w+(?:\s+\w+){0,2})")

online demo (Golang 正则表达式也使用 RE2)。

详情
  • end - end
  • \s* - 0+ 个空格
  • (\w+(?:\s+\w+){0,2}) - 捕获组 1:
  • \w+ - 1+ 个字字符(字母、数字或 _)
  • (?:\s+\w+){0,2} - 0、1 或 2 次
  • \s+ - 1+ 个空格
  • \w+ - 1+字字符。
  • 关于谷歌表格中的正则表达式正向后视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53897464/

    相关文章:

    google-apps-script - 检测用户在谷歌电子表格中插入行或列并在脚本中使用react

    mysql - 使用 RegEx 查找包含超过 N 个分号的行

    sql - TSQL,确保@符号前至少出现一个字符

    javascript - 复选框 - 个别拒绝测试框(英语、数学、科学)和 "Entire Exam"复选框,选中和未选中

    javascript - Google 脚本 - 插入列继承格式

    android - Android 上的 Google Spreadsheet API 无效 token

    google-sheets - Google 表单更改 Google 表格中不同工作表上的单元格引用

    regex - 不带 .html 后缀的 URL 重定向

    java - 具有方法匹配的 Java 中的正则表达式

    python - 将正则表达式模式作为系统参数传递给 Python 脚本