Вам не хватает некоторых пробелов.После символа #
, до <
и после >
.
Таким образом, одним из вариантов является добавление пропущенных совпадений с пробелами:
>>> m = re.match(r"\s*\#?\s*\w*\s*(\<)+\s*(?P<method>\w+)\s*(\>)+\s*\w*", "# This <foo> truc")
>>> m.group('method')
'foo'
Однако, если вам нужно только значение между <
и >
, используйте вместо этого re.search
иВы можете просто значительно улучшить свое регулярное выражение:
>>> r = re.search(r"\<(?P<method>[^\>]*)\>", "# This <foo> truc")
>>> r.group('method')
'foo'