wyrażenie regularne, aby usunąć wszystkie białe znaki z wyjątkiem nawiasów

Zmagałem się z problemem, który miałem nadzieję rozwiązać za pomocą wyrażenia regularnego.

Powiedzmy, że mam łańcuch, który może zawierać dowolne alfanumeryczne z możliwością podciągu w otoczeniu nawiasami kwadratowymi. Te podciągi mogą pojawić się w dowolnym miejscu w łańcuchu. Może być także dowolna liczba podciągów z nawiasami.

Przykłady:

aaa [bb b]aaa [bbb] ccc [d dd][aaa] bbb [c cc]

Widać, że w niektórych podciągach w nawiasach występują białe znaki, to dobrze. Moim głównym problemem jest teraz, gdy napotykam spacje poza nawiasami w następujący sposób:

a aa [bb b]

Teraz chcę zachować przestrzenie wewnątrz nawiasów, ale usunąć je wszędzie.

Jest to trochę trudniejsze dla ciągów takich jak:

a aa [bb b] c cc [d dd] e ee [f ff]

Chciałbym, żeby powrót był:

aaa [bb b] ccc [d dd] eee [f ff]

Spędziłem trochę czasu, czytając różne strony reg ex dotyczące wyglądu, negatywnych twierdzeń itp., I to sprawia, że ​​moja głowa się kręci.

UWAGA: dla każdego, kto to odwiedza, nie szukałem żadnego rozwiązania obejmującego zagnieżdżone nawiasy. Gdyby tak było, prawdopodobnie zrobiłbym to pragmatycznie, podobnie jak niektóre komentarze wymienione poniżej.

questionAnswers(6)

yourAnswerToTheQuestion