PHP preg_replace を使用します。
試した:
$test = " 123";
$test = preg_replace("/^\s/","?",$test);
echo '|' . $test;
出力:
|? 123
必要なもの:
|???????123
別のバリアントも試しましたが、それらはすべて最初のスペースまたはオールインワンのみを置き換えます...
文字列の内側または文字列の末尾にあるスペース - 触れないでください。
PHP preg_replace を使用します。
試した:
$test = " 123";
$test = preg_replace("/^\s/","?",$test);
echo '|' . $test;
出力:
|? 123
必要なもの:
|???????123
別のバリアントも試しましたが、それらはすべて最初のスペースまたはオールインワンのみを置き換えます...
文字列の内側または文字列の末尾にあるスペース - 触れないでください。
正規表現を使用しないと、おそらくこれをはるかに簡単に行うことができますstrspn
。
$whitespaceCount = strspn($test, " \t\r\n");
$test = str_repeat("?", $whitespaceCount).substr($test, $whitespaceCount);
<?php
$test = " 12 3 s";
$test = preg_replace_callback("/^([\s]*)([^\s]*)/","mycalback",$test);
echo '|' . $test;
function mycalback($matches){
return str_replace (" ", "?", $matches[1]).$matches[2];
}
?>
出力:
|??????12 3 s
なぜあなたはこれを試さないのですか:
echo '|' . preg_replace('/\s/','?',' 123');
^
これを試してみてください:文字列の先頭をチェックするパターンから削除すると、最初のスペースのみが置き換えられます (1 つのスペースのみ)。
$test = " 123";
$test = preg_replace("/\s/","?",$test);
echo '|' . $test;
$test = " 123";
$test = preg_replace("/^[ ]|[ ]/","?",$test);
echo '|' . $test;