Я создал функцию, которая разбивает многострочную строку на квадратные скобки и добавляет его части в список.
пример:
example = '''{First,
{[string]}},
{[Second,
{[(string)]}]},
{Third string}'''
start = 0
results = []
count = 0
for i in range(len(example)):
if example[i] == '{':
if count == 0:
start = i
count -=1
if example[i] == '}':
count +=1
if count == 0:
results.append(example[start:i+1])
print(len(results))
print(results)
Вывод этого (и это правильно, список из 3 элементы):
3
['{First,\n {[string]}}', '{[Second,\n {[(string)]}]}', '{Third string}']
Моя проблема в том, что когда я добавляю «лишние» открытые и закрытые скобки где-то в строке:
example = '''{First,
{[s{tring]}},
{[Second,
{[(string)]}]},
{Third st}ring}'''
Моя функция возвращает меня (список только из 1 элемента) :
1
['{First,\n {[s{tring]}},\n {[Second,\n {[(string)]}]},\n {Third st}ring}']
Можно ли избежать этой ситуации и разбить строку только по крайним скобкам? Если вы не поняли мой вопрос, пожалуйста, не стесняйтесь спрашивать!
РЕДАКТИРОВАТЬ:
Я также хочу отметить, что между скобками может быть что-нибудь вроде char, целых чисел, запятых, точек и т. Д. c.