С помощью RegEx вы можете найти key,value
пар, сохранить их в словаре и распечатать их:
import re
mystr = "[aaa ] some text here [bbbb3 ] some other text here [cc ] more text"
a = dict(re.findall(r"\[([A-Za-z0-9_\s]+)\]([A-Za-z0-9_\s]+(?=\[|$))", mystr))
for key, value in a.items():
print key, value
# OUTPUT:
# aaa some text here
# cc more text
# bbbb3 some other text here
RegEx соответствует 2 группам:
Первая группа - все символы, цифры и пробелы внутри заключены в квадратные скобки , а второй - все символы, цифры и пробелы, перед которыми стоят закрытые квадратные скобки и за которыми следуют открытые квадратные скобки или конец строки
Первая группа: \[([A-Za-z0-9_\s]+)\]
Вторая группа: ([A-Za-z0-9_\s]+(?=\[|$))
Обратите внимание, что во второй группе у нас позитивный взгляд : (?=\[|$)
.Без позитивного взгляда персонаж будет израсходован, и следующая группа не найдет начальную квадратную скобку.
findall возвращает список кортежей: [(key1,value1), (key2,value2), (key3,value3),...]
.
Список кортежей можетбыть немедленно преобразованным в словарь: dict (my_tuple_list).
Как только вы получите ваш dict, вы можете делать то, что вы хотите с вашими парами ключ / значение:)