Regex, um alle Leerzeichen außer zwischen Klammern zu entfernen

Ich habe mit einem Problem gerungen, das ich mit Regex lösen wollte.

Angenommen, ich habe eine Zeichenfolge, die eine beliebige alphanumerische Zeichenfolge enthalten kann, mit der Möglichkeit, dass eine Teilzeichenfolge in eckigen Klammern eingeschlossen ist. Diese Teilzeichenfolgen können wie folgt an einer beliebigen Stelle in der Zeichenfolge erscheinen. Es kann auch eine beliebige Anzahl von Teilzeichenfolgen in Klammern geben.

Beispiele:

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

Sie können sehen, dass einige der in eckige Klammern eingeschlossenen Teilzeichen Leerzeichen enthalten, das ist in Ordnung. Mein aktuelles Hauptproblem ist, wenn ich auf Leerzeichen außerhalb der Klammern stoße:

a aa [bb b]

Jetzt möchte ich die Zwischenräume in den Klammern beibehalten, sie aber an anderer Stelle entfernen.

Das wird etwas kniffliger für Streicher wie:

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

Hier möchte ich die Rückkehr sein:

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

Ich habe jetzt einige Zeit damit verbracht, verschiedene Registerseiten in Bezug auf Lookarounds, negative Behauptungen usw. durchzulesen, und es bringt mich dazu, den Kopf zu drehen.

HINWEIS: Für jeden, der dies besucht, habe ich keine Lösung mit geschachtelten Klammern gesucht. Wenn das der Fall wäre, würde ich es wahrscheinlich pragmatisch machen, wie einige der unten erwähnten Kommentare.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage