У меня есть это:
$text = '
hello world
hello
';
Как мне удалить
только если это на своей линии? Таким образом, с приведенным выше примером, второй
должен быть удален. Результаты должны быть:
$text = '
hello world
hello
';
Что я пробовал до сих пор
Через str_replace()
я могу:
$text = str_replace(' ', '', $text);
Но это удалит все экземпляры
, а не только тогда, когда это будет отдельной строкой.
php
str-replace
Хенрик Петтерсон
источник
источник
$text = str_replace('\n'.' '.'\n', '', $text);
но не получалось. См .str_replace()
вместо оценки моего опыта. =)Ответы:
Я уже попробовал этот подход, и я получаю вывод, который вы хотите
Мой вывод на моем местном это:
источник
Мой подход будет следующим:
В результате получается следующий код:
источник
пустой текст без удаленной всей строки: /. Кроме того, имейте в виду, что не я понизил ваш ответ :) Мой комментарий был просто дружеским сообщением :)Может быть, что-то вроде этого:
http://sandbox.onlinephpfunctions.com/code/f4192b95e0e41833b09598b6ec1258dca93c7f06
(это работает на PHP5 , но почему-то не работает на некоторых версиях PHP7 )
Альтернативой будет:
источник
Если вы знаете свой конец строки символов и ваши
всегда следует новая строка:Вывод (некоторые начальные пробелы здесь теряются при форматировании):
Предупреждение: любая строка, которая заканчивается
предшествующим другим содержимым, также будет затронута, поэтому это может не соответствовать вашим потребностям.источник
str_replace()
!
? Например:" \n"
Для этого вы можете использовать регулярное выражение, используя модификаторы DOTALL и MULTILINE вместе с проверочными утверждениями:
(?sm)
: DOTALL (s) MULTILINE (м)(?<=\n)
: предшествующий перевод строки (не является частью матча)\s* \s*
: один & NBSP; с необязательным окружающим пробелом(?=\n)
: завершающий перевод строки (не является частью матча)источник
Вы можете разбить на строки, а затем заменить
пустую строку на строки, которые содержат только
пробел и.Мы сохраним исходные окончания строк, захватив их.
Вывод:
источник