У нас возникли некоторые проблемы с этим регулярным выражением.
/\(\((((?>[^\(\(\)\)]+)|(?R))*)\)\)/x
Он используется для «раскручивания» текстов. Когда у нас есть предложение типа «((Мы ((любим | любим)) эту рубашку (размер xl)))», то он не может реализовать это право. Из-за трех скобок в конце предложения (потому что первая из трех последних скобок в конце принадлежит самому тексту).
Как это должно работать: регулярное выражение должно получить первые 2 скобки, если в начале у него 3 или более скобок, и закрыть последние 2, если в конце есть 3 или более скобок. Это возможно???
имейте в виду, что теперь это работает довольно хорошо на многоуровневом уровне, поэтому что-то вроде "((это((рубашка|свитер))))" работает хорошо (см. 4 круглые скобки в конце?). Таким образом, это происходит только тогда, когда круглые скобки, которые принадлежат тексту, начинаются сразу после начальных круглых скобок для вращения ИЛИ заканчиваются прямо перед конечными скобками.