【问题标题】:Google Sheets Regexextract谷歌表格正则提取
【发布时间】:2018-08-16 02:15:02
【问题描述】:

如果我有一个像abc_xyz 这样的字符串,我可以使用=REGEXEXTRACT(B2, "(.*)_") 从中提取abc。但是如果我有一个像abc_xyz_qwe 这样的字符串,该函数将返回abc_xyz

如果字符串中有多个由下划线分隔的值,您能帮我弄清楚如何让公式只返回abc

【问题讨论】:

  • ([^_]+) 获取非下划线
  • 我对正则表达式不太熟悉,那我该如何使用呢?我知道 ^ 象征着字符串的开始,但我不确定其余部分在做什么
  • @Abhay 建议您使用(.*?)_ 而不仅仅是(.*)_。使用前者告诉正则表达式引擎在 first 下划线处停止,这是您想要的行为。
  • 当你不知道一个模式在做什么时,你可以把它插入一个分析器,比如 regex101

标签: regex google-sheets formulas


【解决方案1】:

=REGEXEXTRACT(B2, "(.*)_") 替换为=REGEXEXTRACT(B2, "([^_]+)") 并开始选择第一个下划线之前的字符串部分。

感谢@CertainPerformance 的答案。

【讨论】:

    【解决方案2】:

    没有正则表达式:

    =left(B2,find("_",B2)-1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      相关资源
      最近更新 更多