Como devo contar o número de ocorrências de um caractere no início de uma string em PHP
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 é '*'
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