Php preg_replace在仅要求删除空格时也会删除换行符

Php preg_replace在仅要求删除空格时也会删除换行符,php,regex,preg-replace,line-breaks,Php,Regex,Preg Replace,Line Breaks,当我尝试使用以下代码从字符串中删除多个空格时 preg_replace('/\s{2,}/','$data) 我注意到也删除了换行符 当我在语法中使用空格字符而不是\s时,一切正常 所以我想知道为什么会有这种行为以及发生了什么?\s匹配一个空白字符。发件人: 默认\s字符为HT(9)、LF(10)、VT(11)、FF(12)、CR (13)和空格(32),它们在“C”中定义为空白 地点 强调我的意思。搜索\s的确切含义。试着改用\h。\s通常是空白、制表符和换行符,所以这是正确的结果。我从来没有

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

preg_replace('/\s{2,}/','$data)

我注意到也删除了换行符

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


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

\s
匹配一个空白字符。发件人:

默认\s字符为HT(9)、LF(10)、VT(11)、FF(12)、CR (13)和空格(32),它们在“C”中定义为空白 地点


强调我的意思。

搜索
\s
的确切含义。试着改用
\h
。\s通常是空白、制表符和换行符,所以这是正确的结果。我从来没有想过换行符会被视为空白字符。不管怎样,这就是答案