我将使用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" |"但这似乎没有做任何事情。
答案 0 :(得分:0)
感谢Wiktor,您的解决方案有效。
^(.*?)(?:_[^_]+){3}$
如果你非常友好地解释它是如何运作的
答案 1 :(得分:0)
您可以使用
^(.*?)(?:_[^_]+){3}$
捕获括号内的部分将由REGEXEXTRACT
函数返回。
模式详情
^
- 字符串开头(.*?)
- 由于*?
是一个懒惰的量词,所以任意0个字符尽可能少(?:_[^_]+){3}
- 连续三次出现
_
- 下划线[^_]+
- _
$
- 字符串结束。