Лучшее, что я смог придумать, это:
strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line)); ^^ Это, кажется, дает длину строки. ^^
strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
edit: я думаю, что должен уточнить, что персонаж, которого я пытаюсь найти, это '*'
preg_match разрешает выходной параметр, который заполняется совпадениями, поэтому вы можете просто взять строчку совпадения для шаблона / ^ ** /:
$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, '*'));