从字符串末尾删除<br>

2022-08-30 21:47:26

正如标题所说,我有一个这样的字符串:

$string = "Hello World<br>hello world<br><br>";

我想摆脱字符串末尾的s,所以它看起来像这样:<br>

$string = "Hello World<br>hello world";

我试过这个:

preg_replace('/^(<br>)*/', "", $string);

但它不起作用。也许有人知道正确的正则表达式。


答案 1

你很接近,你在正则表达式的开头使用了 ^,这意味着“匹配字符串的开头”。您希望在末尾显示 $,这意味着“匹配字符串的末尾”。

preg_replace('/(<br>)+$/', '', $string);

答案 2

只是为了任何像我一样出现这种情况的人,寻找一种方法来从字符串末尾删除任何所有中断标记,包括:

<br> <br/> <br /> <br              /> <br      >

我用过:

$string = preg_replace('#(( ){0,}<br( {0,})(/{0,1})>){1,}$#i', '', $string);

效果很好。如果它们之间有空格,这也将剥离它们。您需要针对任何 \n\r 等进行调整,如果这是您需要的。


推荐