【发布时间】:2017-08-30 20:20:37
【问题描述】:
如何提取此模式中的后续出现:
123|xx3|1x23|1x2x3|x123x|123x
例如,我只想提取第 3 次出现,我尝试使用:
(?:.*?\\|){3}(.*)
但它从第 3 次出现以及之后的所有内容中提取。
【问题讨论】:
标签: regex google-data-studio re2
如何提取此模式中的后续出现:
123|xx3|1x23|1x2x3|x123x|123x
例如,我只想提取第 3 次出现,我尝试使用:
(?:.*?\\|){3}(.*)
但它从第 3 次出现以及之后的所有内容中提取。
【问题讨论】:
标签: regex google-data-studio re2
REGEXP_EXTRACT 参考展示了一个使用捕获组来提取您需要的字符串部分的示例。
所以,匹配到第 3 部分,然后捕获第 3 个值:
^(?:[^|]*[|]){2}([^|]*)
这是一个demo,绿色突出显示的部分将被提取。
详情
^ - 字符串开头(?:[^|]*[|]){2} - 出现 2 次:
[^|]* - 除| 之外的零个或多个字符
[|] - | 管道符号([^|]*) - 第 1 组:| 以外的零个或多个字符。【讨论】: