【发布时间】:2018-03-28 11:50:28
【问题描述】:
在 Ruby 中,您可以使用 namesmethod 提取正则表达式的命名捕获组:
/(?<foo>.)(?<bar>.)(?<baz>.)/.names
#=> ["foo", "bar", "baz"]
这种方法有 Perl 等价物吗?我可以像这样提取名称:
while ( $re =~ m/\?<(.+?)>/g ) {
say $1;
}
但我不知道该解决方案有多强大/高效/优雅。
已编辑:我知道您可以在匹配后获取名称,但我需要在使用正则表达式之前提取名称。
【问题讨论】:
-
我不明白 Ruby 的作用。您可以在 Perl 中命名捕获组。
-
你需要的大概是
keys %+
标签: regex perl capturing-group