Counting number of occurrences of a string inside another (Perl)

后端 未结 4 907
孤街浪徒
孤街浪徒 2020-12-01 09:25

What is the fastest way to count the number of times a certain string appears in a bigger one? My best guess would be to replace all instances of that string with nothing, c

4条回答
  •  时光说笑
    2020-12-01 09:54

    You can capture the strings, then count them. It can be done by applying a list context to the capture with ():

    my $x = "foo";
    my $y = "foo foo foo bar";
    my $c = () = $y =~ /$x/g;  # $c is now 3
    

    You can also capture to an array and count the array. Same principle, different technique:

    my @c = $y =~ /$x/g;
    my $count = @c;
    

提交回复
热议问题