postgresql regex ersetzt nur die erste Übereinstimmung

Ich habe Mühe zu verstehen, wie ich die String-Funktion regexp_match in postgresql so einsetze, wie ich es möchte. Ich habe eine Zeichenfolge und möchte jede Instanz mehrerer Leerzeichen durch nur ein Leerzeichen ersetzen. Also zum Beispiel

'mitt     romney'

wird

'mitt romney'

Ich glaube, der folgende Code sollte funktionieren:

SELECT regexp_replace('This      is a    test', '[ ]+', ' ');

Das erwartete Ergebnis wäre

'This is a test'` 

aber stattdessen komme ich zurück

'This is a     test'`.  

Es ist, als ob die Ersetzung nur die erste Übereinstimmung ersetzt. Weiß jemand, wie man das löst?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage