Regexp_Extract 分隔字符串中的第 n 个位置
Regexp_Extract nth position in delimited string
我有一个格式如下的字符串:
abc_fjs_dja_sja_dj_sadjasdksa_sdjakd_match_fsja_fsdk
我要REGEXP_EXTRACT
第8个分隔位置的字符串(_
作为分隔符)。
我如何使用 DataStudio 中使用的 Regex 语法执行此操作?
我试过这个:(?:[^_]*_){8}(.*?)
但这匹配字符串的第 8 个分隔段之前的任何内容,但我只想要第 8 个段。
谢谢
您可以稍微展开模式并在前七个 _
用 ([^_]*)
:
分隔的部分之后捕获除 _
以外的 0 个或更多字符
^(?:[^_]*_){7}([^_]*)
详情
^
- 字符串开头
(?:[^_]*_){7}
- 重复 7 次
[^_]*
- _
以外的 0 个或更多字符
_
- 下划线
([^_]*)
- 捕获第 1 组:除 _
之外的 0 个或更多字符
REGEXP_EXTRACT
returns 捕获组的内容。
我有一个格式如下的字符串:
abc_fjs_dja_sja_dj_sadjasdksa_sdjakd_match_fsja_fsdk
我要REGEXP_EXTRACT
第8个分隔位置的字符串(_
作为分隔符)。
我如何使用 DataStudio 中使用的 Regex 语法执行此操作?
我试过这个:(?:[^_]*_){8}(.*?)
但这匹配字符串的第 8 个分隔段之前的任何内容,但我只想要第 8 个段。
谢谢
您可以稍微展开模式并在前七个 _
用 ([^_]*)
:
_
以外的 0 个或更多字符
^(?:[^_]*_){7}([^_]*)
详情
^
- 字符串开头(?:[^_]*_){7}
- 重复 7 次[^_]*
-_
以外的 0 个或更多字符
_
- 下划线
([^_]*)
- 捕获第 1 组:除_
之外的 0 个或更多字符
REGEXP_EXTRACT
returns 捕获组的内容。