Модераторы: THandle, bems

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Примеры регулярных выражений 
:(
    Опции темы
Akella
Дата 20.10.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



Есть строка
Цитата

<span>предыдущая</span></a>&nbsp;&nbsp;<a href="/real-estate/apartments-sale/page1/">1</a>&nbsp;|&nbsp;<strong class="drk">2</strong>&nbsp;|&nbsp;<a href="/real-estate/apartments-sale/page3/">3</a>&nbsp;|&nbsp;<a href="/real-estate/apartments-sale/page4/">4</a>&nbsp;&nbsp;<a href="/real-estate/apartments-sale/page3/" class="nxt-page more"><span>следующая</span>


на сайте это выглядит так:
user posted image

Нужно вычислить адрес следующей страницы, в цитате выделено красным.
Т.к. подстрок очень похожих может быть несколько, то такая регулярка (?i)(</a>&nbsp;&nbsp;<a href=".*?>Следующая) даёт неверный результат. Заставить DiRegEx искать с конца строки с помощью символа - $ так и не смог.
Что посоветуете?

Добавлено через 5 минут и 35 секунд
Добавлю, что текст, выделенный красным, может быть и другой. Зависит от рубрики каталога, например вот: 
/cars/passenger/used/page2/
PM MAIL   Вверх
evorios
Дата 22.10.2009, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 17.9.2009

Репутация: нет
Всего: 1



твоё первое сообщение по теме 13.5.2009, не уж то ещё не разобрался?

"([^"]+)" class="nxt-page more"><span>следующая
PM MAIL   Вверх
Akella
Дата 22.10.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



evorios, не помню, наверное разобрался же.
С посленим тоже разобрался.  Парсил в два этапа.
PM MAIL   Вверх
Akella
Дата 12.7.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



Требуется найти ссылку на следующую страницу на сайте. Т.е. на сайтах с объявлениями, как правило внизу или вверху список страниц есть. Вот мне нужно пройтись по всем.

Красным я выделил то, что нужно искать.
Цитата

<p class="clear Paging">Страницы: <span class="curent">1</span> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=1">2</a> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=2">3</a> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=3">4</a> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=4">5</a> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=5">6</a> <span>…</span> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=19">20</a> <span>предыдущая</span> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=1" id="nextLink" title="Ctrl + стрелка вправо">следующая</a></p>     


Из-за того, что на сайте есть ещё и поиск (параметры поиска), то ссылки на след. страницу могут выглядеть немного по-разному, т.е. в ссылку ещё и параметры попадают.
Но в конце есть параметр p=1, который означает номер страницы, начиная с нуля.

/catalog/13?r=10501&s=1&t=1&o=0&p=1
/catalog/13?r=10501&s=1&t=1&o=0&p=2
/catalog/13?q=&t=1&s=1&buy=0&o=0&r=10000&r1=10500&cur=0&pf=0&pt=0&p=5

Т.о. мне нужно получить всю ссылку, а не только последний параметр.
Основная проблема в том, что в этом блоке есть куча похожих ссылок.

Добавлено через 7 минут и 24 секунды
У меня получается 2 выражения: (?i)предыдущая(.*?)следующая и (?i)"(.*?)"
Т.е. сначала получаю: предыдущая</span> <a href="/catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=1" id="nextLink" title="Ctrl + стрелка вправо">следующая
а потом из полученного уже получаю, то что нужно: /catalog/13?r=10501&amp;s=1&amp;t=3&amp;o=0&p=1
А можно как-то выдрать одним выражением?

Исп. DIRegeEx

Это сообщение отредактировал(а) Akella - 12.7.2010, 11:06
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

Добро пожаловать в форум группы "Delphi".

В разделе разрешается:

  • Флудить (в приемлемых величинах)
  • Обсуждать модерирование данного раздела (но не его модератора)
  • Добавлять свои правила если они не противоречат существующим
  • Делать наезды на пешеходов***

Строго запрещено:

  • Размещать рекламу
  • Совершать оскорбления личностей
  • Материться
  • *** Пешеходами не являются (ко)модераторы, админы, участники клуба.

Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форум группы: delphi | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.