Как мне посчитать количество вхождений символа в начале строки в PHP - PullRequest
0 голосов
/ 14 января 2009

Лучшее, что я смог придумать, это:

strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
^^ Это, кажется, дает длину строки. ^^

edit: я думаю, что должен уточнить, что персонаж, которого я пытаюсь найти, это '*'

Ответы [ 2 ]

3 голосов
/ 14 января 2009

preg_match разрешает выходной параметр, который заполняется совпадениями, поэтому вы можете просто взять строчку совпадения для шаблона / ^ ** /:

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

...

"***Hello world!*" -> 3
"Hello world!" -> 0
2 голосов
/ 14 января 2009

Это немного шатко, но это может сработать - оно подсчитывает количество повторений первого символа:

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

Если вы просто хотите удалить все звезды с начала, тогда это немного проще

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