我们在使用这个正则表达式时遇到了一些问题。
/\(\((((?>[^\(\(\)\)]+)|(?R))*)\)\)/x
它用于“旋转”文本。当我们有一个像“((We ((love | like)) this shirt(size xl)))”这样的句子时,他就不能执行这个权利。因为句子末尾的三个括号(因为末尾的最后三个括号中的第一个属于文本本身)。
它需要如何工作:如果正则表达式开头有 3 个或更多括号,则它需要获取前 2 个括号,当末尾有 3 个或更多括号时,结束最后 2 个括号。那可能吗???
请记住,它现在在多层次上工作得很好,所以像 "((this((shirt|sweater))))" 这样的东西效果很好(见最后的 4 个括号?)。因此,只有当属于文本的括号在开始括号后面开始旋转或在结束括号之前结束时才会出错。