PHP nasıl bir dize başında bir karakterin yineleme sayısını saymak gerekir

2 Cevap php

Ben gelmek mümkün olmuştur ki en iyisidir:

strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
^^That seems to give the length of the string.^^

düzenleme: ben bulmaya çalışıyorum '*' karakteri olduğunu açıklamak gerektiğini düşünüyorum

2 Cevap

preg_match maçlarla dolu bir çıkış parametresi, böylece basitçe maçın strlen alabilir veriyor desen / ^ ** /:

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

...

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

Bu biraz sakat ama işe yarayabilir - bu ilk karakter tekrarlanır sayısını sayar:

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

Sadece başından itibaren tüm yıldızları kaldırmak istiyorsanız, o zaman bu biraz daha kolay

strlen($line) - strlen(ltrim($line, '*'));