私が思いついた最高のものは次のとおりです。
strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
^^それは文字列の長さを与えるようです.^^
編集:見つけようとしている文字が「*」であることを明確にする必要があると思います
preg_match は、一致で埋められる出力パラメーターを許可するため、パターン /^**/ の一致の strlen を単純に取得できます。
$matches = array();
preg_match("/^\**/", $string, $matches);
$result = strlen($matches[0]) ;
...
"***Hello world!*" -> 3
"Hello world!" -> 0
これは少し不安定ですが、うまくいくかもしれません。最初の文字が繰り返される回数をカウントします。
strlen($line) - strlen(ltrim($line, $line[0]));
最初からすべての星を削除したいだけなら、これは少し簡単です
strlen($line) - strlen(ltrim($line, '*'));