Помогите с регулярным выражением, которое будет удалять(заменять на 'пустота') более трех идущих друг за другом тегов <br/> или(и) <br>
Спустя 3 минуты, 10 секунд (28.05.2011 - 21:36) inpost написал(а):
А свой покажи пример? Пишешь в скобках оба тега, между ними разделение ИЛИ, подсказываю, оно ставится как | , и за скобкой указываешь количество в размере 3 и больше
Спустя 1 минута, 32 секунды (28.05.2011 - 21:38) Гость_user написал(а):

Понял, сейчас попробую накидать...
Спустя 9 минут (28.05.2011 - 21:47) Гость_user написал(а):
preg_replace('/(<br>|<br/>{3,})/', '', $text);
???
Спустя 11 минут, 45 секунд (28.05.2011 - 21:58) inpost написал(а):
Число за скобками, а не до скобок. И так же альтернативу надо добавить как <br />
Спустя 8 минут, 22 секунды (28.05.2011 - 22:07) Гость_user написал(а):
preg_replace('/(<br>|<br/>|<br />){3,}/', '', $text);
так?
Спустя 3 минуты, 21 секунда (28.05.2011 - 22:10) Winston написал(а):
Самый простой и в тоже время тупой способ
preg_replace("/(<br>|<br\/>)(<br>|<br\/>)(<br>|<br\/>)/i", '', $text);
Спустя 4 минуты, 43 секунды (28.05.2011 - 22:15) Гость_user написал(а):
Тупой не надо. Буду с twin'ом умный изобретать ))
Спустя 1 минута, 16 секунд (28.05.2011 - 22:16) Winston написал(а):
Так изящней
preg_replace("/([<br>|<br\/>\s]){3,}/i", '', $text);
Спустя 40 секунд (28.05.2011 - 22:17) Winston написал(а):
Цитата (Гость_user @ 28.05.2011 - 22:15) |
Тупой не надо. Буду с twin'ом умный изобретать ) |

Спустя 9 минут, 27 секунд (28.05.2011 - 22:26) Гость_user написал(а):
Вот такую 'штуку' ни один из приведенных примеров не обрабатывает.
А нужно, чтобы если тегов более 3, то эта троица оставалась, а остальные удалялись.
$text = 'slfkls<br> <br> <br> <br /> <br/> <br> <br> <br> ddfff';
А нужно, чтобы если тегов более 3, то эта троица оставалась, а остальные удалялись.
Спустя 46 секунд (28.05.2011 - 22:27) Winston написал(а):
Но все таки, так лучше :)
$text = 'a<bR> <Br><BR / > <br / > a я в';
$str = preg_replace("/((\s*<br\s*\/?\s*>){3,})/i", '', $text);
Спустя 2 минуты, 40 секунд (28.05.2011 - 22:30) Winston написал(а):
Цитата (Гость_user @ 28.05.2011 - 21:33) |
удалять(заменять на 'пустота') более трех идущих друг за другом тегов <br/> или(и) <br> |
Цитата (Гость_user @ 28.05.2011 - 22:26) |
нужно, чтобы если тегов более 3, то эта троица оставалась, а остальные удалялись |
Мм.. да
В первом посте одно пишешь, а в последнем совсем другое.
Спустя 1 минута, 23 секунды (28.05.2011 - 22:31) Winston написал(а):
Цитата (Гость_user @ 28.05.2011 - 22:26) |
чтобы если тегов более 3, то эта троица оставалась, а остальные удалялись |
Тогда так
$text = 'slfkls<br> <br> <br> <br /> <br/> <br> <br> <br> ddfff';
$str = preg_replace("/((\s*<br\s*\/?\s*>){3,})/i", '<br/><br/><br/>', $text);
Спустя 7 минут, 3 секунды (28.05.2011 - 22:38) Гость_user написал(а):
Да именно то, что нужно. Спасибо! )
Я уже сам подправил. Только собрался отправлять, смотрю - ты уже опередил )
Я уже сам подправил. Только собрался отправлять, смотрю - ты уже опередил )
Спустя 24 минуты, 18 секунд (28.05.2011 - 23:02) inpost написал(а):
Гость_user
Теги подряд, и теги, разделённые пробелами или переносами - это разные условия!
Теги подряд, и теги, разделённые пробелами или переносами - это разные условия!
Спустя 2 часа, 3 минуты, 36 секунд (29.05.2011 - 01:06) Invis1ble написал(а):
$text = preg_replace('#(?:<br\pZ*/?>\pZ*){3,}#sui', '<br /><br /><br />', $text);