Возможно, проще использовать re.split
, поскольку разделитель известен (2 или более пробелов), а промежуточные шаблоны - нет.Я уверен, что кто-то, кто лучше в regex, чем я, может поработать над прогнозом, но, разбив \s{2,}
, вы можете значительно упростить проблему.
Вы можете сделать свой словарь именованных групп следующим образом:
import re
s = "a b d d c"
x = dict(zip('abc', re.split('\s{2,}', s)))
x
{'a': 'a', 'b': 'b d d', 'c': 'c'}
Где первый аргумент в zip
- это именованные группы.Чтобы распространить это на более общие имена:
groups = ['group_1', 'another group', 'third_group']
x = dict(zip(groups, re.split('\s{2,}', s)))
{'group_1': 'a', 'another group': 'b d d', 'third_group': 'c'}