expresiones regulares para eliminar todos los espacios en blanco excepto entre paréntesis

He estado luchando con un problema que esperaba resolver con expresiones regulares.

Digamos que tengo una cadena que puede contener cualquier alfanumérico con la posibilidad de que una subcadena esté rodeada por corchetes. Estas subcadenas podrían aparecer en cualquier parte de la cadena como esta. También puede haber cualquier número de subcadenas entre corchetes.

Ejemplos:

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

Puedes ver que hay espacios en blanco en algunas de las subcadenas entre corchetes, eso está bien. Mi principal problema en este momento es cuando encuentro espacios fuera de los corchetes como este:

a aa [bb b]

Ahora quiero preservar los espacios dentro de los corchetes, pero eliminarlos en cualquier otro lugar.

Esto se vuelve un poco más complicado para cadenas como:

a aa [bb b] cc [d dd] e ee [fff]

Aquí me gustaría que la vuelta fuera:

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

Pasé algún tiempo leyendo diferentes páginas de registro con respecto a los aspectos, las afirmaciones negativas, etc. y eso me está dando vueltas.

NOTA: para cualquiera que visite esto, no estaba buscando ninguna solución que incluyera corchetes anidados. Si ese fuera el caso, probablemente lo haría pragmáticamente como algunos de los comentarios que se mencionan a continuación.

Respuestas a la pregunta(6)

Su respuesta a la pregunta