如何简单替换字符串里的空格

有一字符串,如 "NOT  [abc def] AND [123 45]", 我只想将方括号里的空格用下划线替换,其他的空格保留, 结果应为"NOT  [abc_def] AND [123_45]" 。想了好久用re里的函数实现,但一直没有个比较简洁的方法,在此请教各位。谢谢。