1

これはばかげた質問かもしれませんが、次のコードが期待どおりに機能する理由を理解できません

$text = "ab    cd";
$text = preg_replace("/\s+/", "", $text);
echo $text;

と出力しますabcd

\s正規表現内で文字通りの意味を得るためにバックスラッシュをエスケープするべきではありませんか?

4

1 に答える 1

4

文字列リテラルの規則では、ifの後に別の文字または a\以外の文字が続くと規定されているため、必ずしもそうとは限りません。この一般規則は、二重引用符で囲まれた文字列にも影響しますが、その場合、これら 2 つだけでなく、より多くのエスケープ シーケンスが認識されます。\'

必要に応じてエスケープすることもできますが、個人的には、世界にはすでに十分なバックスラッシュがあると思います.

于 2013-08-08T15:11:58.360 に答える