1

这可能是一个愚蠢的问题,但我无法理解为什么以下代码按预期工作

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

和输出abcd

不应该转义反斜杠以\s在正则表达式中获取其字面含义吗?

4

1 回答 1

4

不一定,因为字符串文字规则说 if\后面跟着其他任何东西,\或者 a'它被视为任何其他字符。这个一般规则也影响双引号字符串,尽管在这种情况下,除了这两个之外,还有更多可识别的转义序列。

如果你愿意,你可以逃避它,但我个人认为世界已经有足够的反斜杠了。

于 2013-08-08T15:11:58.360 回答