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

时间:2014-12-17 16:24:58

标签: php regex

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

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

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

^\|(\d+)\|

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

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

请告诉我是否有更有效的方法(在php中)

1 个答案:

答案 0 :(得分:1)

使用\G锚点在最后一场比赛停止的同一个字符串上开始下一场比赛。

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

DEMO