Страницы

Поиск по вопросам

пятница, 21 декабря 2018 г.

Регулярка, только пробелы \s, исключая \n

Пытаюсь заменить в строке пробелы повторяющиеся два и более раза на одинарные, вот так:
$str=preg_replace("/\s{2,}/"," ",$str);
Но параметр \s заменяет не только пробелы, но и символы перевода строки
причем на пробел, а мне нужно только пробелы и табуляции. Как сделать?


Ответ

Вариант 1. Напишите символы явно - пробел и табуляцию
$str=preg_replace("/[ \t]{2,}/"," ",$str);
Вариант 2. Строку разделить на кусочки (split/exlode) по переводу строки. Каждую строку обработать и потом сделать join. Выглядит немного странно, но зато поможет решить проблему вида "у меня есть пробелы в начале и конце строки, как и их удалить?".

Комментариев нет:

Отправить комментарий