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.