2016-10-24 9 views
-1

При попытке удалить несколько пробелов из строки с помощью этого кодаpreg_replace удаляет также разрывы строк, когда только пробелы просят быть удалены

preg_replace('/\s{2,}/', ' ', $data)
Я заметил, что также разрывы строк удаляются.

Когда я использую пробел в синтаксисе вместо \ s, тогда все работает нормально.

Так что мне интересно, почему у нас такое поведение и что происходит?

+2

Поиск о том, что означает '\ s'. Вместо этого попробуйте использовать '\ h'. –

+0

\ s - это пробел, табуляция и символ новой строки, поэтому это правильный результат. –

+2

Возможный дубликат [Ссылка - что такое это регулярное выражение?] (Http://stackoverflow.com/questions/22937618/reference-what-does-this -regex-mean) –

ответ

1

\s соответствует символу пробела. От PCRE:

по умолчанию \ S символов являются НТ (9), НЧ (10), VT (11), FF (12), CR (13), и пространство (32), которые определены как пробел в локали «C» .

Emphasis mine.

 Смежные вопросы

  • Нет связанных вопросов^_^