嵌套的REGEX捕获

时间:2018-08-18 18:03:58

标签: regex

我正在使用类似

的数据格式
{item 1 | item 2 | item 3} 

将项目拆分为数组以进行进一步处理。此Regex模式对此适用:

`{([^}]+)}` 

但我想像这样嵌套组

{This is {item 1 | item 2 | item 3} | This is not {item 5 | item 6 | item 7 }}

我已经尝试了好几件事,但是没有运气。有没有办法先匹配最里面的物品,然后从那里向外工作?

1 个答案:

答案 0 :(得分:3)

如果您只想查找嵌套最多的数组:

{([^{}]*)}

如果要查找所有外部数组,可以执行以下操作(请注意,仅当它是PCRE时才起作用)

{((?(?={)(?R)|[^}])*)}