就像标题所说,我有一个字符串:
$string = "Hello World<br>hello world<br><br>";
我想把字符串末尾的<br>
去掉,使其看起来如下所示:$string = "Hello World<br>hello world";
我尝试了这个:
preg_replace('/^(<br>)*/', "", $string);
但是它并没有起作用。 也许有人知道正确的正则表达式。
就像标题所说,我有一个字符串:
$string = "Hello World<br>hello world<br><br>";
我想把字符串末尾的<br>
去掉,使其看起来如下所示:$string = "Hello World<br>hello world";
我尝试了这个:
preg_replace('/^(<br>)*/', "", $string);
但是它并没有起作用。 也许有人知道正确的正则表达式。
你已经很接近了,你在正则表达式开头使用了^符号,它的意思是“匹配字符串的开头”。你需要在末尾使用$符号,表示“匹配字符串的结尾”。
preg_replace('/(<br>)+$/', '', $string);
<br />
,我觉得这个正则表达式可以解决问题:preg_replace('/(<br \/>)+$/', '', $string);
- Louis B.对于其他跟我一样想要找到一种方法来从字符串末尾删除所有换行标签的人,包括:
<br> <br/> <br /> <br /> <br >
我使用了:
$string = preg_replace('#(( ){0,}<br( {0,})(/{0,1})>){1,}$#i', '', $string);
可以起到很好的效果。如果它们之间有空格,这也会将它们去掉。如果需要,您还需要调整任何\n\r等。
$string = preg_replace('#^(( ){0,}
){1,}#i', '', $string);
- Scott Flack(?:\s*<br *\/?>\s*)+$
匹配结尾或者使用 ^(?:\s*<br *\/?>\s*)+
匹配开头,这将匹配所有带或不带斜杠的 br 标签,并且包括标签前面或斜杠前后的任何空格。 - My1preg_replace('#(\s*<br\s*/?>)*\s*$#i', '', $string);
这里是测试:
$arr = [
'<something>else that</needs>to <br> <BR /> <br/> ',
'<something>else that</needs>to <br>',
'<something>else that</needs>to <br/> ',
'<something>else that</needs>to ',
'<something>else that</needs>to<br/>',
];
foreach ($arr as $string) {
var_dump(preg_replace('#(\s*<br\s*/?>)*\s*$#i', '', $string));
}
这将打印:
test.php:11:string '<something>else that</needs>to' (length=30)
test.php:11:string '<something>else that</needs>to' (length=30)
test.php:11:string '<something>else that</needs>to' (length=30)
test.php:11:string '<something>else that</needs>to' (length=30)
test.php:11:string '<something>else that</needs>to' (length=30)
尝试使用preg_replace('/(<br>)+$/', "", $string);
编辑:哎呀,现在应该可以了。
正则表达式很强大,但我认为这种情况更简单,rtrim 应该可以解决。
$string = rtrim($string,'<br>');
<
, b
, r
, 或 >
(如果存在的话)。比如,I like rhubarb<br>
会变成 I like rhuba
,</footer>
会变成 </foote
。 rtrim 有其用途,但这不是其中之一。 - jonathanmstrip_tags
函数并不有用。 - GDY
<br>
放在反引号(```)中,以便它显示 :) - NickAldwin<br>
转换成\n
(换行符),并且去掉字符串末尾的<br>
吗?所以在你的例子中,最终的字符串应该是"Hello World\nhello world"
吗?如果是这样,你可能需要两个正则表达式替换,一个用于换行符情况,另一个用于去除情况。请编辑问题以更具体化。 - Fabian Fagerholm