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