【问题标题】:Regexp_Extract nth position in delimited stringRegexp_Extract 分隔字符串中的第 n 个位置
【发布时间】:2018-11-01 09:35:22
【问题描述】:

我有一个格式为:

abc_fjs_dja_sja_dj_sadjasdksa_sdjakd_match_fsja_fsdk

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

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

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

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

谢谢

【问题讨论】:

  • 试试:(?:[^_]+_){7}\K([^_]*)

标签: regex google-data-studio re2


【解决方案1】:

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

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

regex demo

详情

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

REGEXP_EXTRACT 返回捕获组的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-23
    • 2019-07-31
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多