もちろん、スペースで活気づけられた2つの単語があり、前後にたくさんのスペースがあります。私がする必要があるのは、前後のスペースを一度だけ削除することです。
その前後のスペースを削除するにはどうすればよいですか?
そのために正規表現は必要ありません。トリム()を使用してください:
$words = ' my words ';
$words = trim($words);
var_dump($words);
// string(8) "my words"
この関数は、str の先頭と末尾から空白を取り除いた文字列を返します。
完全を期すために(この質問にはタグが付けられているためregex
)、trim()
正規表現での再実装は次のとおりです。
function preg_trim($subject) {
$regex = "/\s*(\.*)\s*/s";
if (preg_match ($regex, $subject, $matches)) {
$subject = $matches[1];
}
return $subject;
}
$words = ' my words ';
$words = preg_trim($words);
var_dump($words);
// string(8) "my words"
何らかの理由で、上記の 2 つの解決策がうまくいかなかったので、この解決策を思いつきました。
function cleanSpaces($string) {
while(substr($string, 0,1)==" ")
{
$string = substr($string, 1);
cleanSpaces($string);
}
while(substr($string, -1)==" ")
{
$string = substr($string, 0, -1);
cleanSpaces($string);
}
return $string;
}