質問

私が思いついたのは最高です:

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, '*'));
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top