Generalnie chcę, aby był wyłapywany ciąg znaków, który jest zawarty w nawiasie. Problemu nie ma, gdy mam niemieszane nawiasy:
Jakiś tekst ({w nawiasach}).
Wyrażenie regularne wygląda tak:
#\(\{(.*?)\)\}#
Jednakże problem jest, bo te nawiasy są mieszane:
Jakiś test ({jakiś inny tekst ({i tutaj jeszcze jedenk}) znowu )}.
I tutaj też w zasadzie problemu nie ma:
#\(\{(.*)\}\)# //tutaj wychwytuje rozpoczęcie nawiasu "({" oraz ostatni nawias w wyrażeniu "})"
Problem następuje, kiedy nawiasy są mieszane i jest kilka "głównych":
Jakiś tekst ({tutaj też ({i tutaj}) również }), tutaj następny ({nawias główny ({a w nim }) jakiś }) tekst.
Stosując takie wyrażenie:
#\(\{(.*?)\)\}#
Wyciągnie on:
({tutaj też ({i tutaj})
A stosując takie:
#\(\{(.*)\}\)#
Wyciągnie on:
({tutaj też ({i tutaj}) również }), tutaj następny ({nawias główny ({a w nim }) jakiś })
A mi zależy na tym, aby wyciągnąć:
({tutaj też ({i tutaj}) również })
Czyli tyle ile razy nawias został otwarty to tyle razy musi zostać zamknięty.
Ktoś ma pomysł, jak się do tego zabrać?