Regex 如何修改此正则表达式以允许嵌套括号

Regex 如何修改此正则表达式以允许嵌套括号,regex,Regex,我的正则表达式现在允许旋转语法{spin1 | spin2} $customContent = preg_replace('/(\{)(.*?)(})/', '{#'.$index.'#}', $customContent, 1); 我想允许无限嵌套括号{{spin1 | spin2}{blabla1 | blabla2}} 你能帮我修一下这个正则表达式吗 我尝试了以下解决方案。没有一个奏效 /{([^{}]*)}/ /(?<={)[^}]*(?=})/ /(\{(?:\{.*\

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

  $customContent = preg_replace('/(\{)(.*?)(})/', '{#'.$index.'#}', $customContent, 1);
我想允许无限嵌套括号{{spin1 | spin2}{blabla1 | blabla2}}

你能帮我修一下这个正则表达式吗

我尝试了以下解决方案。没有一个奏效

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

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

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

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

/\{.*?\}/i

无限嵌套括号,无限深度,非空内容:JS语法

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

这就是你的意思吗

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

Thx你但两个代码都不能在我的微调器上工作:我也试过/\s*\{[^\}]+\}\s*+/试试这个语法,它可以在regex tester上工作无限深度不工作:这种方式无限深度工作改进版,跳过由空格组成的空字符串签出,也很出色…Hamza Thx你但我不是专家事件我了解一点,我会读它,但不确定我会做它执行模式是在正则表达式的先进技术之一。如果您还是初学者,您可能需要练习并阅读更多关于正则表达式和通用模式的内容。如果您已经对正则表达式有点熟悉,您可以阅读。@user3216977我仍然不理解您的问题。看看这个