Perl Brasil

Pesquisar

Documentação

Artigos

Planeta

Eventos

Comunidade

r3 - 09 Mar 2006 - GabrielVieira

Como contar o número de ocorrências de uma string

Problema

Você quer saber quantas vezes uma string aparece dentro de uma outra.

Solução

Use uma expressão regular global e conte o número de ocorrências.

Discussão

O que você pode fazer é colocar um while() ao redor de uma expressão regular de substituição global. Por exemplo, vamos contar os números inteiros negativos:

    $string = "-9 55 48 -2 23 -76 4 14 -44";
    while ($string =~ /-\d+/g) { $count++ }
    print "There are $count negative numbers in the string";

Uma outra versão obtém o resultado da expressão regular em contexto de lista, e então atribui o resultado a um escalar, produzindo uma contagem do número de ocorrências.

    $count = () = $string =~ /-\d+/g; 

Comentários