Учитывая входную строку i
, вы разбиваете строку на пробелы и затем можете использовать itertools.groupby
для группировки выходных данных в зависимости от того, начинается или заканчивается ли каждая подстрока в скобках:
from itertools import groupby
[' '.join(g) for _, g in groupby(i.split(), key=lambda s: s.startswith(('\(', '\[')) and s.endswith(('\)', '\]')))]
Возвращает, учитывая ваши входные строки из intput1
, intput2
, intput3
соответственно:
['some text1', '\\(blabla1\\)', 'some text2', '\\[blabla2\\]', 'some text3', '\\[blabla3\\]']
['\\(bla1\\)', 'some text']
['\\[bla2\\]', 'some text and', '\\[bla3\\]']