32

もちろん、スペースで活気づけられた2つの単語があり、前後にたくさんのスペースがあります。私がする必要があるのは、前後のスペースを一度だけ削除することです。

その前後のスペースを削除するにはどうすればよいですか?

4

5 に答える 5

90

そのために正規表現は必要ありません。トリム()を使用してください:

$words = '      my words     ';
$words = trim($words);
var_dump($words);
// string(8) "my words"

この関数は、str の先頭と末尾から空白を取り除いた文字列を返します。

于 2012-10-06T08:53:36.110 に答える
6

完全を期すために(この質問にはタグが付けられているため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"
于 2012-10-06T09:05:00.180 に答える
1

何らかの理由で、上記の 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;
}
于 2015-07-18T11:15:28.070 に答える