Я пытаюсь сопоставить токен несколько раз, но я получаю только последнее вхождение, которое, как я понимаю, является нормальным поведением согласно этому ответу , но я не смог получить Решение, представленное там в моем примере.
Мой текст выглядит примерно так:
&{dict1_name}= key1=key1value key2=key2value
&{dict2_name}= key1=key1value
Таким образом, в основном несколько строк, каждая из которых содержит начальную строку, пробелы, а затем переменное количество пар ключей. Если вам интересно, откуда это взялось, это файл переменных каркаса робота, который я пытаюсь преобразовать в файл переменных Python.
Я буду выполнять итерацию для каждой строки, чтобы найти пары ключей и составить из них словарь Python.
Мой текущий шаблон регулярных выражений:
&{([^ ]+)}=[ ]{2,}(?:[ ]{2,}([^\s=]+)=([^\s=]+))+
Это правильно дает мне имя вхождения, но пары ключей соответствуют только последнему вхождению, как упомянуто выше. Как я могу получить его, чтобы он возвращал кортеж, содержащий: ("dict1_name","key1","key1value"..."keyn","keynvalue")
, чтобы я мог затем перебрать его и построить словарь python так:
dict1_name= {"key1": "key1value",..."keyn": "keynvalue"}
Спасибо!