Como devo contar o número de ocorrências de um caractere no início de uma string em PHP

StackOverflow https://stackoverflow.com/questions/441581

  •  22-07-2019
  •  | 
  •  

Pergunta

O melhor que eu tenho sido capaz de chegar a é:

strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
^^ Isso parece dar o comprimento da corda. ^^

edit: Eu acho que eu deveria esclarecer que a personagem que eu estou tentando encontrar é '*'

Foi útil?

Solução

preg_match permite um parâmetro de saída que é preenchido com os jogos, assim você pode simplesmente tomar a strlen da partida para o padrão / ^ ** /:

$matches = array();
preg_match("/^\**/", $string, $matches);
$result =  strlen($matches[0]) ;

...

"***Hello world!*" -> 3
"Hello world!" -> 0

Outras dicas

Este é um pouco instável, mas ele poderia funcionar - ele conta o número de vezes que o primeiro caractere é repetido:

strlen($line) - strlen(ltrim($line, $line[0]));

Se você apenas deseja remover todas as estrelas do começo, então este é um pouco mais fácil

strlen($line) - strlen(ltrim($line, '*'));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top