正则表达式 - 提取分隔符之间的出现

Regex- Extract occurrence between to delimiters

如何提取此模式中的后续事件:

123|xx3|1x23|1x2x3|x123x|123x

所以例如我只想提取第 3 次出现,我尝试使用:

(?:.*?\|){3}(.*)

但它从第 3 次出现和之后的所有内容中提取。

REGEXP_EXTRACT 参考显示了使用捕获组提取所需字符串部分的示例。

因此,匹配到第 3 部分,然后捕获第 3 个值:

^(?:[^|]*[|]){2}([^|]*)

这是一个demo,绿色突出显示的部分将被提取。

详情

  • ^ - 字符串开头
  • (?:[^|]*[|]){2} - 出现 2 次:
    • [^|]* - |
    • 以外的零个或多个字符
    • [|] - | 管道符号
  • ([^|]*) - 第 1 组:除 |.
  • 以外的零个或多个字符