我能想到的最好的是:
strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
^^这似乎给出了字符串的长度。^^
编辑:我认为我应该澄清我试图找到的角色是'*'
答案 0 :(得分:3)
preg_match允许输出参数填充匹配,因此您可以简单地将匹配的strlen用于模式/ ^ ** /:
$matches = array();
preg_match("/^\**/", $string, $matches);
$result = strlen($matches[0]) ;
...
"***Hello world!*" -> 3
"Hello world!" -> 0
答案 1 :(得分:2)
这有点不可思议,但它可能有效 - 它计算第一个角色重复的次数:
strlen($line) - strlen(ltrim($line, $line[0]));
如果您只是想从头开始删除所有星星,那么这会更容易
strlen($line) - strlen(ltrim($line, '*'));