这可能是一个愚蠢的问题,但我无法理解为什么以下代码按预期工作
$text = "ab cd";
$text = preg_replace("/\s+/", "", $text);
echo $text;
并输出abcd
。
\s
中的反斜杠不应该被转义以在正则表达式中获得其字面含义吗?
答案 0 :(得分:4)
不一定,因为string literal rules表示如果\
后跟除了\
或'
以外的任何内容,则会将其视为任何其他字符。这个一般规则也会影响双引号字符串,尽管in that case有更多可识别的转义序列而不仅仅是这两个。
如果您愿意, 可以逃避它,但我个人认为世界上已经有足够的反斜杠了。