Ответ 1
Вы близко, вы использовали ^ в начале регулярного выражения, что означает "соответствие началу строки". Вы хотите $в конце, что означает: "Сопоставьте конец строки".
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> <br/> <br /> <br /> <br >
Я использовал:
$string = preg_replace('#(( ){0,}<br( {0,})(/{0,1})>){1,}$#i', '', $string);
. Это также разделит их, если у них есть белое пространство между ними. Вам нужно будет настроить любой \n\r и т.д., Если это вам нужно.
Регулярные выражения мощные, но я думаю, что этот случай более прост, rtrim должен работать
$string = rtrim($string,'<br>');
Попробуйте preg_replace('/(<br>)+$/', "", $string);
EDIT: Ой, теперь это должно работать.
Вы можете попробовать функцию strip_tags: