В качестве примера приведена строка s = 'Hi, my name is Humpty-Dumpty, from "Alice, Through the Looking Glass"'
, и я хочу разделить ее на следующие фрагменты:
# To Do: something like {l = s.split(',')}
l = ['Hi', 'my name is Humpty-Dumpty', '"Alice, Through the Looking Glass"']
Я не знаю, где и сколько разделителей я найду.
Это моя первоначальная идея, и она довольно длинная и не точная, поскольку она удаляет все разделители, в то время как я хочу, чтобы разделители внутри кавычек сохранялись:
s = 'Hi, my name is Humpty-Dumpty, from "Alice, Through the Looking Glass"'
ss = []
inner_string = ""
delimiter = ','
for item in s.split(delimiter):
if not inner_string:
if '\"' not in item: # regullar string. not intersting
ss.append(item)
else:
inner_string += item # start inner string
elif inner_string:
inner_string += item
if '\"' in item: # end inner string
ss.append(inner_string)
inner_string = ""
else: # middle of inner string
pass
print(ss)
# prints ['Hi', ' my name is Humpty-Dumpty', ' from "Alice Through the Looking Glass"'] which is OK-ish