PHP - Как удалить символ новой строки с '>' перед переводом строки - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть такой вводимый текст

bla;bla<ul>
<li>line one</li>
<li>line one</li>
<ul>bla
line two
line tree

Я хочу заменить только строки, содержащие '>', пробелом;другая строка, в которой нет символа «>» в ​​конце строки, будет игнорироваться.

Вывод должен быть следующим:

bla;bla<ul><li>line one</li><li>line one</li><ul>bla
line two
line tree

Каким должен быть PHP-код для замены строки?

Я пытался

$output = preg_replace( "/\r|\n/", "", $text );

, но это не очень хорошая идея, так как этот код будет применяться ко всей строке $ text

Большое спасибо.

Теперь я могу решить проблему с этим

$output = preg_replace("/(?<=>)\s+(?=)/", "", $text );

Большое вам спасибо

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете использовать >(?:\n|\r\n) регулярное выражение и заменить его на >, который будет соответствовать >, расположенному только в конце строки.

$text = "bla;bla<ul>\n<li>line one</li>\n<li>line one</li>\n<ul>bla\nline two\nline tree";
$output = preg_replace( "/>(?:\n|\r\n)/", ">", $text );
echo $output;

, который дает следующий результат, как вы ожидаете,

bla;bla<ul><li>line one</li><li>line one</li><ul>bla
line two
line tree

Демонстрация в реальном времени

...