Как получить доступ к группе захвата по имени? - PullRequest
1 голос
/ 22 сентября 2019

Скажите, у меня есть MatchResult m:

>>> var m = Regex("(?<foo>hello) world").find("hello world")!!

Как я могу получить доступ к группе с именем "foo" по имени?Согласно документам MatchGroupCollection реализует оператор get(String) , но если я попробую его, я получу исключение:

>>> m.groups["foo"]
error: type mismatch: inferred type is String but Int was expected
m.groups["foo"]
         ^

1 Ответ

0 голосов
/ 22 сентября 2019

Это MatchNamedGroupCollection, который позволяет получать по имени, MatchGroupCollection позволяет получать только по целочисленному индексу.

Так что вам нужно проверить тип группы перед получением совпадения по имени.

Что-то вроде: (m.groups as MatchNamedGroupCollection)["foo"]

...