如何在perl6中找到regexp的匹配数?

时间:2018-04-01 08:27:46

标签: regex perl6

在Perl 5中我们可以写

my @things = $text =~ /thing/g;

标量上下文中的$things是字符串thing中子字符串$text的非重叠出现次数。

如何在Perl 6中执行此操作?

2 个答案:

答案 0 :(得分:7)

你可以这样做:

my $text = 'thingthingthing'
my @things = $text ~~ m:g/thing/;
say +@things; # 3

~~匹配右侧的左侧,m:g使测试返回包含所有结果的List[Match]

答案 1 :(得分:5)

我在RosettaCode找到了解决方案。

  

http://rosettacode.org/wiki/Count_occurrences_of_a_substring#Perl_6

say '01001011'.comb(/1/).elems;     #prints 4