Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Регулярка для вырезания повторяющихся последовательностей  (Прочитано 6220 раз)
0 Пользователей и 1 Гость смотрят эту тему.
henrymorgan
Новенький

ua
Offline Offline

« : 08-01-2011 11:25 » 

Вот код:

<p class="txt"><strong>Text</strong> <a href="page1.html">Категория1</a> <a href="/page2.html">Категория2</a> <br>

из него требуется вырезать одной регуляркой несколько значений:
Категория1
Категория2

Регулярку такую использую:
#<p class="txt"><strong>.*?</strong>.*?<a.*?>(.*?)</a>.*?<br>#ims

Но вырезается только Категория1

Как сделать чтобы вырезались обе? Обратите также внимание, что категорий может быть разное количество в коде (от 1 до 10 скажем). Нужно чтобы регулярка  в независимости от количества все получала.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 08-01-2011 11:33 » 

henrymorgan, В perl есть опция g. Тогда в массив сбрасываются все нарезки. Скорее всего в PHP такая же опция.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 08-01-2011 14:40 » 

В PHP есть функция preg_match_all.

%<p class="txt"><strong>[^<]*</strong>(?:\s*<a href="page.?\.html">([^<]*)</a>\s*)*<br>%
« Последнее редактирование: 08-01-2011 14:42 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines