Regex dopasowuje spacje, ale nie w „ciągach”

Szukam regularnego dopasowania pasującego do spacji tylko wtedy, gdy przestrzenie te nie są ujęte w podwójne cudzysłowy ("). Na przykład, w

Mary had "a little lamb"

powinien pasować do pierwszego i drugiego miejsca, ale nie do pozostałych.

Chcę podzielić łańcuchtylko w przestrzeniach, które nie znajdują się w podwójnych cudzysłowach, a nie w cudzysłowach.

Używam C ++ z zestawem narzędzi Qt i chciałem użyć QString :: split (QRegExp). QString jest bardzo podobny do std :: string, a QRegExp to zasadniczo rexx POSIX zamknięty w klasie. Jeśli istnieje takie wyrażenie regularne, podział byłby trywialny.

Przykłady:

Mary had "a little lamb"     =>   Mary,had,"a little lamb"
1" 2 "3                      =>   1" 2 "3 (no splitting at ")
abc def="g h i" "j k" = 12   =>   abc,def="g h i","j k",=,12

Przepraszam za zmiany, byłem bardzo nieprecyzyjny, kiedy najpierw zadałem pytanie. Mam nadzieję, że jest teraz nieco wyraźniejszy.

questionAnswers(5)

yourAnswerToTheQuestion