как говорится в заголовке, у меня есть строка вроде этого:
$string = "Hello World<br>hello world<br><br>";
теперь я хочу избавиться от s в конце этой строки, чтобы она выглядела так:
$string = "Hello World<br>hello world";
Я попробовал это:
preg_replace('/^(<br>)*/', "", $string);
но это не сработало. возможно, кто-то знает правильное регулярное выражение.
приветствие peter
Вы близки, вы использовали ^ в начале регулярного выражения, что означает «соответствовать началу строки». Вы хотите $ в конце, что означает: «Сопоставьте конец строки».
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: