是否真的需要以正则表达式模式逃避反斜杠?

时间:2013-08-08 15:10:57

标签: php regex string escaping string-literals

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

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

并输出abcd

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

1 个答案:

答案 0 :(得分:4)

不一定,因为string literal rules表示如果\后跟除了\'以外的任何内容,则会将其视为任何其他字符。这个一般规则也会影响双引号字符串,尽管in that case有更多可识别的转义序列而不仅仅是这两个。

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