Как Regex заменить несколько тегов <br/ "> одним тегом <br/" >?
Я хочу, чтобы <br /><br />
превратился в <br />
Каков шаблон для этого с регулярным выражением?
Примечание. Теги <br />
могут встречаться более двух раз подряд.
Ответы
Ответ 1
Вы можете использовать s/(<br \/>)+/<br \/>/
, но если вы пытаетесь использовать регулярное выражение в HTML, вы, вероятно, делаете что-то неправильно.
Изменить: Несколько более сильный шаблон, который вы могли бы использовать, если у вас смешанные перерывы:
/(<br\ ?\/?>)+/
Это будет ловить <br/>
и <br>
, что может быть полезно в некоторых случаях.
Ответ 2
$html = preg_replace('#(<br */?>\s*)+#i', '<br />', $html);
Это приведет к любой комбинации <br>
, <br/>
или <br />
с любым количеством или типом пробелов между ними и заменяет их одним <br />
.
Ответ 3
(<br />)+
Совместим с ними, чтобы вы могли использовать preg_replace
для их замены (помните о правильном выполнении символов).