如何修改此REGEX以允许嵌套的Bracket

时间:2014-09-12 09:22:52

标签: regex

我的正则表达式允许现在旋转语法{spin1 | spin2}

  $customContent = preg_replace('/(\{)(.*?)(})/', '{#'.$index.'#}', $customContent, 1);

我想允许无限制的嵌套括号{{spin1 | spin2} {blabla1 | blabla2}}

你能帮我解决这个正则表达式吗?

我尝试过以下解决方案。没有工作。

/{([^{}]*)}/

/(?<={)[^}]*(?=})/

/(\{(?:\{.*\}|[^\{])*\})/m

/\{(((?>[^\{\}]+)|(?R))*)\}/x

/\{.*?\}/i

1 个答案:

答案 0 :(得分:-1)

无限的嵌套括号,深度不受限制,不是空的内容:( JS语法)

/(\s*\{[^\{\}]+\}\s*)+/g

DEMO

- 编辑 -

这是你的意思吗?

/[^{}]*{\s*([^{}]+)?}?\s*[^{}]*/g

DEMO