Przekształć ciąg rozdzielony przecinkami na listę, ale w cudzysłowie ignoruj przecinek
Jak przekonwertować"1,,2'3,4'"
na listę? Przecinki oddzielają poszczególne elementy, chyba że znajdują się w cudzysłowie. W takim przypadku przecinek ma zostać dołączony do elementu.
To jest pożądany rezultat:['1', '', '2', '3,4']
. Jedno wyrażenie regularne, które znalazłem w innym wątku, aby zignorować cytaty, jest następujące:
re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''')
Ale daje mi to wyjście:
['', '1', ',,', "2'3,4'", '']
Nie rozumiem, skąd pochodzą te dodatkowe puste ciągi i dlaczego w ogóle drukowane są przecinki, a co dopiero razem.
Próbowałem sam zrobić to wyrażenie regularne:
re.compile(r'''(, | "[^"]*" | '[^']*')''')
który nie wykrył niczego i właśnie zwrócił moją oryginalną listę.
Nie rozumiem dlaczego, czy nie powinien wykrywać przecinków przynajmniej? Ten sam problem występuje, gdy dodam?
po przecinku.