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

时间:2018-05-22 14:52:12

标签: regex google-data-studio

我的格式为字符串:

abc_fjs_dja_sja_dj_sadjasdksa_sdjakd_match_fsja_fsdk

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

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

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

但这匹配任何东西,包括字符串的第8个分隔段,whaeras我只想要第8段。

由于

1 个答案:

答案 0 :(得分:2)

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

^(?:[^_]*_){7}([^_]*)

请参阅regex demo

<强>详情

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

REGEXP_EXTRACT返回捕获组的内容。