#регулярные_выражения #perl
Для того что б вырезать все пробелы и переводы строк, как с начала, так и с конца, + убирать двойные пробелы, написал регулярку: $opis =~ s/^\s+|^(\r?\n)+|\s+$|(\r?\n)+$//g; $opis =~ s/\s+/ /g; Локально все работает, как только запускаю на сервере, работать не хочет. Вернее оно удаляет вообще все переводы строк, даже те, что есть в середине текста. Почему?
Ответы
Ответ 1
\s в регулярном выражении означает и перевод каретки в том числе, поэтому в середине строки исчезают переводы. используйте \h $opis =~ s/^\s+|\s+$//g; $opis =~ s/\h+/ /g;Ответ 2
Потому что g в конце поставил. Рекомендую начальные/конечные пробелы убирать одной регуляркой (или двумя), а двойные переводы строк другой, уже с g.Ответ 3
$opis=~s/\s{2,}|\n//g
Комментариев нет:
Отправить комментарий