Regexp_Extract 分隔字符串中的第 n 个位置

J. *_*Ayo 4 regex re2 looker-studio

我有一个格式为的字符串:

abc_fjs_dja_sja_dj_sadjasdksa_sdjakd_match_fsja_fsdk
Run Code Online (Sandbox Code Playgroud)

我想要REGEXP_EXTRACT第 8 个分隔位置的字符串(_作为分隔符)。

如何使用 DataStudio 中使用的 Regex 语法来执行此操作?

我已经尝试过这个:(?:[^_]*_){8}(.*?)

但这会匹配字符串的第 8 个分隔段(包括第 8 个分隔段)之前的所有内容,但我只想要第 8 个段。

谢谢

Wik*_*żew 5

您可以稍微展开模式并捕获除_前七个_分隔部分之外的 0 个或多个字符([^_]*)

^(?:[^_]*_){7}([^_]*)
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

细节

  • ^- 字符串的开头
  • (?:[^_]*_){7}- 7次重复
    • [^_]*- 0 个或更多字符,除了_
    • _ - 一个下划线
  • ([^_]*)- 捕获组 1:0 个或更多字符_

REGEXP_EXTRACT返回捕获组的内容。