使用正则表达式捕获管道符号分隔的数字


Capturing pipe symbol delimited digits with regex

我需要从"|"分隔的字符串中捕获数字(id),这是一个示例字符串:

|98|34|2|{"flag":"CHART"}

这是似乎有效的表达式(对于第一个数字)

^'|('d+)'|

问题是这只捕获第一个数字。

我不知道如何让这个正则表达式重复自己,直到它到达"{"符号。帮助将不胜感激!

请告诉我是否有更有效的方法可以做到这一点(在 php 中)

使用 'G 锚点在上一个匹配项中断的同一字符串上开始下一个匹配项。

(?:^'||'G)'|?('d+)(?='|)

演示