![]() |
Модераторы: THandle, bems |
![]() ![]() ![]() |
|
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
С этого сайта
http://regexpstudio.com/ скачал библиотеку и exe`шник (RegExpr Test Program). Задача такая. Есть текст:
нужно из текста выцепить тип объекта недвижимости. Для этого нужно выцепить из текста конкретные слова. В данном случае: КВАРТИРА, Квартира, КВ, Кв. (1 строка = 1 одъявлений) Запускаю RegExpr Test Program (v.0947), копирую туда текст объявления, ввожу выражение:
И ещё, модификаторы нужно вводить так? (выражение)(ims) или по другому? Это сообщение отредактировал(а) Akella - 13.5.2009, 09:23 |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
пока составил такую регулярку
![]()
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
не могу допереть, как работать с окончаниями.
Есть в тексте 2 слова, которые нужно выцепить ИЗОЛИРОВАННАЯ и ИЗОЛИРОВАННУЮ эта регулярка: изолированн[ау] ловит ИЗОЛИРОВАННА или ИЗОЛИРОВАННУ а как полностью слова найти? Добавлено через 4 минуты и 49 секунд ![]() ураа
|
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
?((\d)(-)К\.КВ|К\.|КВАРТИРА)
Добавлено через 1 минуту и 18 секунд ой, куда то пост исчез, в котором спрашивалось как вытащить квартиру... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Всё, я допёр, что перед точкой нужно ставить слеш \
Добавлено через 1 минуту и 26 секунд зачем вопросительный знак? Добавлено через 4 минуты и 15 секунд количество комнат в отдельном месте нуна узнавать ![]() Просто из текста объявления нужно выцепить как можно больше интересной и нужной информации, как то: тип недвижимости, район, улицу, цену, телефоны, комнат, этажность, площади. Т.е. разбить объявление на части, шоб потом запихнуть всё красиво и аккуратно в базу. ![]() Пока потихоньку продвигаюсь. ![]() |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Красным выделены площади (общая, жилая, кухни), как будет выглядеть регулярка? Хотелось бы выцепить три группы цифр, разделённых слешем: 20/10,5/7 такое: 11/14 или такое: 1/9 нужно пропускать Это сообщение отредактировал(а) Akella - 14.5.2009, 17:20 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Теперь задача усложнилась. Требуется найти только такое: 1/5 или 11/14, т.е. этажность, этаж/этажность дома
Зелёным выделено то, что нужно найти, красным выделено то, что брать во внимание не требеутся. |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
\s(\d*/\d*),\s
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
cemick, супер!
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Тут выявилась проблема с поиском слов вначале предложения.
но если в тексте появляются слова, которые содержат в себе слово дом, например, домовитый, домашний, издому, то такие слова нужно пропускать Вот регулярка: (?ir)(уч-к|коттедж|([^а-Я]| )дом([^а-Я]| )|домик[^а-Я]|часть дома|полдома|пол дома|усадьб(а|у)|дач(а|у)|земля|зем. участок|зем.участок|земельный участок|участок зем.|участок земли|участок |ПОД ЗАСТРОЙКУ |ПОД ЗАСТРОЙКУ\.) Эта регулярка не видит слово ДОМ вначале предложения. Это сообщение отредактировал(а) Akella - 18.5.2009, 10:33 |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Не видит потому, что ([^а-Я]| ) предполагает наличие хотя бы одного символа..
(?ir)(уч-к|коттедж|^([а-Я])*дом([а-Я])*|домик[^а-Я]|часть дома|полдома|пол дома|усадьб(а|у)|дач(а|у)|земля|зем. участок|зем.участок|земельный участок|участок зем.|участок земли|участок |ПОД ЗАСТРОЙКУ |ПОД ЗАСТРОЙКУ\.) |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
А как "сказать" парсеру, что если в тексте встречается какое-нибудь слово или выражение, то не обрабатывать такой текст вообще?
Допустим есть текст. В нём мы ищем слово дом. Но если в тексте есть слово квартира, то не нужно обрабатывать такой текст. Это сообщение отредактировал(а) Akella - 18.5.2009, 10:36 |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
скорее всего ни как
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Тогда такой вопрос.
регулярка (?ir)((^м\.кв)|[^а-Я\ ]кв[^а-Я]|кв,|изолированн(ая|ую)|гостинк(а|у)|комнат(у|а|ы)|из\. кв\.|из\.кв\.|из\.кв,|ГОСТ\.|комн. из|комн.из) думает, что это квартира из-за выделенного красным цветом. Как указать, что бы на м кв м. кв м. кв. кв. м. кв м кв. м кв м. парсер не обращал внимание? |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Тут наверно надо более точно задавать условие поиска квартир, например, мы знаем что перед "кв" не может быть чисел:
[,;\A]{1}[\s\D]*кв[^а-Я] (сочетание букв "кв" до которых может быть куча пробельных символов и один терминальный, либо начало строки) вместо регулярного выражения: [^а-Я\ ]кв[^а-Я] для предложения ДОМ, Автовокзал, 2К, 50кв. м., хор.сост., газ, лет.кухня, вода во дворе |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
За то теперь такое:
не может определить Это сообщение отредактировал(а) Akella - 18.5.2009, 15:43 |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
(?ir)(уч-к|коттедж|^([а-Я])*дом([а-Я])*|домик[^а-Я]|часть дома|полдома|пол дома|усадьб(а|у)|дач(а|у)|земля|зем. участок|зем.участок|земельный участок|участок зем.|участок земли|участок |ПОД ЗАСТРОЙКУ |ПОД ЗАСТРОЙКУ\.) Нудно было убрать то, что красным |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Ну не знаю, вот щас так определяет:
Дом, 60 м2, газ, удобства, телефон, Люботин, экв. 26 т.д. Дом, 85 м*2, Хол. Гора, Лен. сторона, тел., вода, 6 сот., уч. ровн., 50 т.у.е. Дом Дом, Дом все 5 слов Дом |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Не могу найти в справке, как указать отрицание, несоотетствие.
Допустим предложение Дом ХТЗ Фрунзе флигель Зкомнаты, жилое состояние, вода во дворе, газ, канализация по улице, гараж, 3 сотки регулярка: ((?ir)(\d(к|-к[^у]| из|из|/из| к\.| -к| к[ом]){1,6})|Зиз|Зк.) определяем, что это квартира из-за выделенного красным Как бы указать что-то вроде: ((?ir)(\d(к|-к[НЕу]| из|из|/из| к\.| -к| к[ом][НЕомнаты]){1,6})|Зиз|Зк.) Добавлено через 4 минуты и 14 секунд там вообще буква "З" |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Вот хороший пример
Полдома в Люботине, 2 комнаты, большая кухня, Вот регулярка: ((?ir)(\d(к |-к[^у]| из|из|/из| к\.| -к| к[ом]){1,6})|Зиз|Зк\.) Из-за выделенного красным парсер думает, что это квартира, скорее всего из-за этого: к[о (выделено зелёным) Но вот это уже должно захавать, т.е. это изолированная квартира В Люботине, 2 комн. из. кв. , большая кухня, отапливаемая веранда, газ, вода, Что тут придумать? Добавлено через 6 минут и 26 секунд
смотря в каком месте этот символ ^ Добавлено через 8 минут и 35 секунд Пока придумал так: ((?ir)(\d(к |-к[^у]| из|из|/из| к\.| -к| к(ом\.|омн\.|[^ комнаты])){1,6})|Зиз|Зк\.) потом посмтотрим ![]() Это сообщение отредактировал(а) Akella - 18.5.2009, 16:51 |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Дак разве может быть, что бы перед сокращением обозначающим квартиру сразу стояли стоит цифры????
Это похоже в них и нет. Можно только отрицание буквы.
[^ комнаты] ![]() Как вариант можно отдельно написать регулярное выражение, которым будешь проверять наличие упоминания о комнатах |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
вот так часто начинаются объявления: 3-к. из.кв. 3-к. из. кв. 3-комн. из.кв. 3-ком. из. кв. 3-к. приват. кв. Добавлено через 1 минуту и 7 секунд
а если [^(комнаты)] |
||||
|
|||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Ну вместо дефиса может быть проблел или ничего не может быть:
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Как сказать парсеру, что, например, слово: рядом не должно браться во внимание
![]() Это сообщение отредактировал(а) Akella - 19.5.2009, 10:26 |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
cemick, тут в твоём примере небольшой казус:
вот твоя регулярка: (?ir)([,;\A][\s\D]{1}*кв[^а-Я]|изолированн(ая|ую)|гостинк(а|у)|комнат(у|а|ы)|из\. *кв\.|из\.*кв,|ГОСТ\.|комн. *из|комн. пр. *кв|З *из. *кв|3 из\? *кв.|3 *из. *кв) Красным выделено то, что ты недавно посоветовал использовать, чтобы пропускать в тексте квадратные метры, например
да, всё правильно, зелёный текст во внимание не берётся, теперь немного дёгтя ![]() вот текст, это всё квартиры, видно это по тому, что вначале текста 2-к. кв. 2-ком. кв. 5-к. кв.
но из-за выделенного красным куска регулярки... такие объявления не учитываются, а должны, что ещё можно придумать :( |
||||
|
|||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Ну смотря что надо
![]() Можно и просто добавить учет еще и точки ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Усложняем задачу.
![]() Есть таблица. В таблице есть поле текстовое, в котором хранятся названия районов города. Типа, вокзал, центр, ленинский, комсомольский, московский. Так вот... как бы наиболее оптимально узнать из текста название района? Вообще, стоит ли прибегать к помощи регулярок. Может динамически построить регулярку вида: (район1|район2|район3|район4|район5|районN) Ну в небольших городах мало районов. Но... может быть, например, около 500, а то и все 1500 районов. Что посоветуете? Я пока склоняюсь к построению динамической регулярки. |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Наверно динамически, районов все таки сильно ограниченное количество и это будет самый надежный способ.
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
В доке не нашёл, автор молчит, как рыба об лёд. Может кто знает ограничение на длину регулярки, если таковое имеется?
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Я может не в тему влезу, но может быть не стоит использовать здесь регулярные выражения и написать проверку вручную? Ничего особо сложного тут нет - быстрее руками сделать, чем подбирать рег. выр.
Наверное, оптимально будет использовать рег. выр. для проверок частей и общую логику для всего выражения. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
CodeMonkey, не понял, покажи на пример, если не тяжело
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Хуже всего, что в названиях районов могут встречаться служебные символы, как минимум точка. StringReplace, конечно же спасёт гиганта мысли, но от пользователя
![]() Добавлено @ 12:58 Нет. строить регулярку из сотни районов не годится. Произвдительности вообще нет. Программа, можно сказать, не работает. Добавлено через 12 минут и 2 секунды
как вам регулярка ![]() ![]() Это сообщение отредактировал(а) Akella - 21.5.2009, 12:58 |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Акелла, я про то, что не удасться уложить эти правила в рег. выражение. А даже, если удасться, то решение будет настолько страшным, что его нельзя будет ни модифицировать, ни отлаживать. Этакий write-only language.
Лучше сделать это обычным кодом. Ну что-то типа синтаксического анализатора. Разбить строку на части (зяпятые?), попытаться выяснить смысл каждой части. Да, он может зависеть от смысла предыдущих/последующих частей, но тем не менее это можно сделать. Сами рег. выр. можно использовать при разбиении на части или при анализе каких-то частей. Это сообщение отредактировал(а) CodeMonkey - 21.5.2009, 13:48 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
все правильно, товарищ из блога решил выполнить с помощью регулярных выражений то, что уже относится семантическому анализу, к чему они не приспособлены. В результате он сделал правильно, фактически совместил регулярное выражение ((\d{3}).(\d{3}).(\d{3}).(\d{3})) выполняющее синтаксический анализ входной строки, и семантический анализ полученных токенов. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Сейчас пытаюсь наиболее правильно и оптимально находить цену. К сожалению цена и телефон могут быть схожи.
Цены выделил красным. Может перед парсингом преобразовывать тыс. долл., т.д. к нулям? Добавлено @ 13:49 Для начала. (?ir)(экв\. *\d{1,}( *тыс\.)|экв\. *\d{1,}( *т\.)) Это сообщение отредактировал(а) Akella - 27.5.2009, 13:51 |
|||
|
||||
FireIce |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 12.10.2009 Где: Красноярск Репутация: нет Всего: нет |
Кто мне подскажет как работает функция frac?
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
FireIce, frac - это из регулярок что-то??
|
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Есть строка
на сайте это выглядит так: ![]() Нужно вычислить адрес следующей страницы, в цитате выделено красным. Т.к. подстрок очень похожих может быть несколько, то такая регулярка (?i)(</a> <a href=".*?>Следующая) даёт неверный результат. Заставить DiRegEx искать с конца строки с помощью символа - $ так и не смог. Что посоветуете? Добавлено через 5 минут и 35 секунд Добавлю, что текст, выделенный красным, может быть и другой. Зависит от рубрики каталога, например вот: /cars/passenger/used/page2/ |
|||
|
||||
evorios |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 17.9.2009 Репутация: нет Всего: 1 |
твоё первое сообщение по теме 13.5.2009, не уж то ещё не разобрался?
"([^"]+)" class="nxt-page more"><span>следующая |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
evorios, не помню, наверное разобрался же.
С посленим тоже разобрался. Парсил в два этапа. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Требуется найти ссылку на следующую страницу на сайте. Т.е. на сайтах с объявлениями, как правило внизу или вверху список страниц есть. Вот мне нужно пройтись по всем.
Красным я выделил то, что нужно искать.
Из-за того, что на сайте есть ещё и поиск (параметры поиска), то ссылки на след. страницу могут выглядеть немного по-разному, т.е. в ссылку ещё и параметры попадают. Но в конце есть параметр 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&s=1&t=3&o=0&p=1" id="nextLink" title="Ctrl + стрелка вправо">следующая а потом из полученного уже получаю, то что нужно: /catalog/13?r=10501&s=1&t=3&o=0&p=1 А можно как-то выдрать одним выражением? Исп. DIRegeEx Это сообщение отредактировал(а) Akella - 12.7.2010, 11:06 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Добро пожаловать в форум группы "Delphi". В разделе разрешается:
Строго запрещено:
Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Форум группы: delphi | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |