Регулярные выражения. Удаление пустых строк

аватар: jimmyjonezz
Звание: Мастер
Сообщений: 2470

Подскажите, как решить проблему с чисткой текста. Получаю некий текстовый массив - куча пустых строк, пробелов, табуляция и т.д. Например:
Цитировать

[description] => "У погибшего командира разбившегося Ту-95 не раскрылся парашют

По предварительной информации, бортинженер майор Зайцев, также погибший при крушении бомбардировщика, утонул при приземлении в болоте."

lifenews.ru

для бедолаги @Muu забаненого в гугле

Чищу текст так:
$text = preg_replace('/[\r\n]+(?![^(]*\))/', '', $text);
Но часть пустых строк все же остается. Подскажите, как более тщательно вычистить текст.

__________________

welcome to stravaganza.ru

аватар: Va-Bank
Звание: Гуру
Сообщений: 8261

В регулярках не очень, но в инете нашел что-то такое:

^[ ]*$ или ^\s*$

__________________

Используя трассировку кода, можно избежать ламерских вопросов!

]]>]]>

аватар: jimmyjonezz
Звание: Мастер
Сообщений: 2470

я тоже весь инет перерыл, что только не использовал, но у меня текст берется с блогов... а там фиг знает, что: символы, табуляция, пробелы и т.д.

__________________

welcome to stravaganza.ru

аватар: Va-Bank
Звание: Гуру
Сообщений: 8261

Попробуй

#\s*?\r?\n\s*?(?=\r\n|\n)#s
 
/\s*\r+/

или
# Первый вариант
$text = preg_replace("/(?:^\r\n|(\r\n)+)/", "$1", $text);
# Второй вариант
$text = preg_replace('/[\r\n]+/s',"\n", preg_replace('/[\r\n][ \t]+/s',"\n",$text));

__________________

Используя трассировку кода, можно избежать ламерских вопросов!

]]>]]>

аватар: jimmyjonezz
Звание: Мастер
Сообщений: 2470

Вообще ничего не меняется, похоже мне придется с самим текстом что-то делать: кодировать, переводить в другую кодировку...

__________________

welcome to stravaganza.ru

аватар: Va-Bank
Звание: Гуру
Сообщений: 8261

Попробуй текст в Word перенести и включить там показ скрытых символов. Посмотреть в общем, что вообще в пустых строках находится.

__________________

Используя трассировку кода, можно избежать ламерских вопросов!

]]>]]>

аватар: AltaVista
Звание: Мастер
Сообщений: 1814

]]>http://regexr.com/]]>
Вставляй текст который ты хочешь избавить от примеси. А вверху подбирай нужные символы к удалению. Так проще, чем сразу через php.
Тем более на сайте подсвечивается что именно фильтрует регулярка.

__________________

Путь в тысячу миль начинается с одного шага.

аватар: jimmyjonezz
Звание: Мастер
Сообщений: 2470

есть еще ]]>https://regex101.com/]]>, но от них мало толку если вообще не сечешь в регулярках.

__________________

welcome to stravaganza.ru

аватар: Va-Bank
Звание: Гуру
Сообщений: 8261

Я помню как-то находил сайт, на котором можно было генерировать регулярку. Выделаешь текст и говоришь что с ним делать. Вот только убей не помню что за сайт. Буржуйский какой-то. Как-то хотел его найти, и не смог.

UPD
Лять, ну надо же. Решил попробовать снова и прям на первой ссылке наткнулся на страничку, на которой есть переход на тот сайт Big smile
]]>http://www.txt2re.com/]]>

Вот только походу исходник не поддерживает мультистроковый текст Sad

__________________

Используя трассировку кода, можно избежать ламерских вопросов!

]]>]]>

аватар: jimmyjonezz
Звание: Мастер
Сообщений: 2470

Нашел заковырку. У меня в тексте есть символ - Переход на новую строку без разрыва абзаца. поэтому \r и \n не работают.

__________________

welcome to stravaganza.ru

аватар: Kastor
Звание: Мастер
Сообщений: 1169

Что засимвол?
]]>Речь об этом?]]>

__________________

Скажите мне док, считающий себя единственным здравомыслящим человеком сумасшедший? Если да, возможно я псих.
]]>http://www.kastordriver.one/]]>