[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярное выражение для удаления повторов
Гость_user
Здравствуйте.
Помогите с регулярным выражением, которое будет удалять(заменять на 'пустота') более трех идущих друг за другом тегов <br/> или(и) <br>



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

Спустя 1 минута, 32 секунды (28.05.2011 - 21:38) Гость_user написал(а):
smile.gif
Понял, сейчас попробую накидать...

Спустя 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'ом умный изобретать )

biggrin.gif

Спустя 9 минут, 27 секунд (28.05.2011 - 22:26) Гость_user написал(а):
Вот такую 'штуку' ни один из приведенных примеров не обрабатывает.

$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);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.