说我有一个MatchResult
m
:
>>> var m = Regex("(?<foo>hello) world").find("hello world")!!
如何通过名称访问名为“ foo”的组?根据文档,MatchGroupCollection
实现了get(String)
operator,但如果尝试,则会出现异常:
>>> m.groups["foo"]
error: type mismatch: inferred type is String but Int was expected
m.groups["foo"]
^
答案 0 :(得分:0)
MatchNamedGroupCollection
允许按名称获取,MatchGroupCollection
仅允许按整数索引获取。
因此,在按名称获取匹配项之前,您需要检查组类型。
类似(m.groups as MatchNamedGroupCollection)["foo"]