以下是Regext

时间:2017-07-06 10:20:29

标签: regex google-sheets formula

我将使用Regex

从Google工作表中提取以下结果

如果我有以下两个字段:

S01_123_123_123

S02_1_123_123_123

我想提取

S01

S02_1

我尝试过以下公式:

=iferror(sort(unique(arrayformula(REGEXEXTRACT(Sheet!A$2:A,"^(.*?)_"))))) 这给出了:

S01

S02

=iferror(sort(unique(arrayformula(REGEXEXTRACT(Sheet!A$2:A,"^z.*?_")))))

S01 _

S02 _

现在用完了想法。我甚至尝试过非分组(?:_)和OR" |"但这似乎没有做任何事情。

2 个答案:

答案 0 :(得分:0)

感谢Wiktor,您的解决方案有效。

^(.*?)(?:_[^_]+){3}$

如果你非常友好地解释它是如何运作的

答案 1 :(得分:0)

您可以使用

^(.*?)(?:_[^_]+){3}$

捕获括号内的部分将由REGEXEXTRACT函数返回。

模式详情

  • ^ - 字符串开头
  • (.*?) - 由于*?是一个懒惰的量词,所以任意0个字符尽可能少
  • (?:_[^_]+){3} - 连续三次出现
    • _ - 下划线
    • [^_]+ - _
    • 以外的一个或多个符号
  • $ - 字符串结束。