当仅要求删除空格时,preg_replace也会删除换行符

时间:2016-10-24 14:48:59

标签: php regex preg-replace line-breaks

当我尝试使用此代码从字符串中删除多个空格时

preg_replace('/\s{2,}/', ' ', $data)
我注意到也删除了换行符。

当我在语法中使用空格字符而不是 \ s 时,一切正常。

所以我想知道为什么我们有这种行为以及发生了什么?

1 个答案:

答案 0 :(得分:1)

\s匹配空格字符。来自PCRE

  

默认字符为HT(9), LF(10),VT(11),FF(12), CR   (13),以及空格(32),它们被定义为" C"中的空白区域。   区域设置。

强调我的。