PHP Preg_replace无法与<br>和换行符一起使用

时间:2019-09-10 01:07:32

标签: php regex

我有一些行中包含html内容的Json文件,但是每次我尝试使用preg_replace来匹配中断和换行符的这种组合都行不通。

例如,<br> No atraviesa el papel

要替换为:<br>No atraviesa el papel

已经尝试:

$pattern = '/<br>\n/m';
$subs = '<br>';
$json_response = preg_replace($pattern, $subs, $json_response);

我希望删除换行符,仅保留<br>

2 个答案:

答案 0 :(得分:0)

您需要先进行积极的前瞻。
然后将匹配项替换为空字符串。

/(?<=<br>)\s*\R/

Demo on regex101

  • edit:如果<br>
  • 后面有空格,则添加空格匹配项
  • edit:在@ user3783243的帮助下使其变得更加简洁和通用

答案 1 :(得分:0)

您正在寻找的东西吗?

<?php

$json_response="<br>
No atraviesa el papel
";

$tobe = "<br>No atraviesa el papel
";

$pattern = '/<br>([\r\n]+)/is';
$subs = "<br>";
$json_response = preg_replace($pattern, $subs, $json_response);

echo $json_response;
echo "\r\n", $json_response==$tobe?"Matched":"Did not match";

它输出:匹配。