有条件地替换考虑多标签和单标签场景的标签

时间:2014-02-24 05:43:30

标签: php regex

我试图编写一个PHP函数来处理字符串,将单个和多个<br>标记的实例视为唯一处理。我希望能够采用有多个<br>代码的任何实例,例如(<br><br>,或<br><br><br><br><br><br><br>等)并使用</p><p>的单个代码段替换,但仍然允许<br>代码的单个实例不变。举个例子:

//INPUT STRING:
"<p>A yellow dog <br> An orange fox <br><br> A purple bird <br><br><br> A red rooster</p>"
//OUTPUT STRING:
"<p>A yellow dog <br> An orange fox </p><p> A purple bird </p><p> A red rooster</p>"

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

使用preg_replace()

$input_lines="<p>A yellow dog <br> An orange fox <br><br> A purple bird <br><br><br> A red rooster</p>";
preg_replace("/(<br>){2}/", "<\p><p>", $input_lines);

DEMO

<强>输出

<p>A yellow dog <br> An orange fox <\p><p> A purple bird <\p><p><br> A red rooster</p>

答案 1 :(得分:0)

这有效 -

$str = "<p>A yellow dog <br> An orange fox <br><br><br> A purple bird <br><br> A red rooster</p>";
$res = preg_replace("/(<br>){2,}/", "<p></p>", $str);
print_r("<pre>".htmlentities($res)."</pre>");
//OUTPUT- <p>A yellow dog <br> An orange fox <p></p> A purple bird <p></p> A red rooster</p>