Transformieren Sie durch Kommas getrennte Zeichenfolgen in Listen, ignorieren Sie jedoch Kommas in Anführungszeichen

Wie konvertiere ich"1,,2'3,4'" in eine Liste? Kommas trennen die einzelnen Elemente, sofern sie nicht in Anführungszeichen stehen. In diesem Fall ist das Komma in die Position aufzunehmen.

Dies ist das gewünschte Ergebnis:['1', '', '2', '3,4']. Ein regulärer Ausdruck, den ich in einem anderen Thread gefunden habe, um die Anführungszeichen zu ignorieren, lautet wie folgt:

re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''')

Aber das gibt mir diese Ausgabe:

['', '1', ',,', "2'3,4'", '']

Ich kann nicht verstehen, wo diese zusätzlichen leeren Zeichenfolgen herkommen und warum die beiden Kommas überhaupt gedruckt werden, geschweige denn zusammen.

Ich habe versucht, diesen regulären Ausdruck selbst zu erstellen:

re.compile(r'''(, | "[^"]*" | '[^']*')''')

was am Ende nichts entdeckte und nur meine ursprüngliche Liste zurückgab.

Ich verstehe nicht warum, sollte es nicht zumindest die Kommas erkennen? Das gleiche Problem tritt auf, wenn ich a hinzufüge? nach dem Komma.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage