Transforme uma string separada por vírgula em uma lista, mas ignore a vírgula entre aspas
Como faço para converter"1,,2'3,4'"
em uma lista? Vírgulas separam os itens individuais, a menos que estejam entre aspas. Nesse caso, a vírgula deve ser incluída no item.
Este é o resultado desejado:['1', '', '2', '3,4']
. Um regex que encontrei em outro thread para ignorar as aspas é o seguinte:
re.compile(r'''((?:[^,"']|"[^"]*"|'[^']*')+)''')
Mas isso me dá essa saída:
['', '1', ',,', "2'3,4'", '']
Eu não consigo entender, de onde essas cordas extras vazias estão vindo, e porque as duas vírgulas estão sendo impressas, e muito menos juntas.
Eu tentei fazer isso regex eu mesmo:
re.compile(r'''(, | "[^"]*" | '[^']*')''')
que acabou não detectando nada, e acabou de retornar minha lista original.
Eu não entendo porque, não deveria detectar as vírgulas no mínimo? O mesmo problema ocorre se eu adicionar um?
depois da vírgula.