Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

как парсить reg expr ?

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 27.06.2012, 16:24   #1
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию как парсить reg expr ?

У меня процедура парса страницы к примеру я хочу с сайта zhyk.ru спарсить надпись 'Реклама' и 'Привет друг'.
как спарсить сразу 2 значения ?
пишу такой код парса:
Код:
c:=form1.idhttp1.get('http://zhyk.ru');
RegExp := TRegExpr.Create;
 RegExp.InputString :=c;
 RegExp.Expression := '<br />(.*?)<br /> ';

 if RegExp.Exec then
                 begin
  memo1.Lines.Add(RegExp.Match[1]);
 RegExp.Free;
а как сразу спарсить и Рекламу и Привет друг ?
  Ответить с цитированием
Старый 27.06.2012, 17:54   #2
 Разведчик
Аватар для metra3
 
metra3 никому не известный тип
Регистрация: 18.10.2011
Сообщений: 5
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: как парсить reg expr ?

регулярку длиннее сделай, и бери reg.match[1] и reg.match[2], либо в виде двух отдельных регулярок
  Ответить с цитированием
Старый 27.06.2012, 18:00   #3
 Разведчик
Аватар для R.A.Z.O.R.
 
R.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известенR.A.Z.O.R. скоро будет известен
Регистрация: 19.02.2012
Сообщений: 36
Популярность: 447
Сказал(а) спасибо: 25
Поблагодарили 50 раз(а) в 40 сообщениях
Отправить сообщение для R.A.Z.O.R. с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Вот полезная ссылка: [Ссылки могут видеть только зарегистрированные пользователи. ]. Все про регулярки хорошо описано
  Ответить с цитированием
Старый 27.06.2012, 18:06   #4
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от metra3Посмотреть сообщение
регулярку длиннее сделай, и бери reg.match[1] и reg.match[2], либо в виде двух отдельных регулярок

пробоавал делать регулярку длиннее не выходит не парсит(
2 отдельные нет смысла делать по скольку спарсить нужно будет для одного проекта около 30 значений 30 отдельных нет смысла делать(
  Ответить с цитированием
Старый 27.06.2012, 20:08   #5
 Разведчик
Аватар для metra3
 
metra3 никому не известный тип
Регистрация: 18.10.2011
Сообщений: 5
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от [Na`Vi]DendIПосмотреть сообщение
пробоавал делать регулярку длиннее не выходит не парсит(
2 отдельные нет смысла делать по скольку спарсить нужно будет для одного проекта около 30 значений 30 отдельных нет смысла делать(

Если не парсит, значит регулярку записал неверно
  Ответить с цитированием
Старый 27.06.2012, 20:57   #6
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Copy, Pos, Delete круче регулярок
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 27.06.2012, 21:25   #7
Заблокирован
 Сержант
Аватар для D.E.Z.E.R.T.I.R
 
D.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражанияD.E.Z.E.R.T.I.R блестящий пример для подражания
Регистрация: 07.05.2012
Сообщений: 117
Популярность: 1781
Сказал(а) спасибо: 16
Поблагодарили 82 раз(а) в 44 сообщениях
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от VeTaL_UAПосмотреть сообщение
Copy, Pos, Delete круче регулярок

он не умеет юзать CPD :-D
  Ответить с цитированием
Старый 27.06.2012, 22:22   #8
Знаток Dark Orbit
 Рыцарь-защитник
Аватар для Mebius
 
Mebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского СоюзаMebius трижды герой Советского Союза
Регистрация: 14.06.2010
Сообщений: 584
Популярность: 6626
Сказал(а) спасибо: 86
Поблагодарили 847 раз(а) в 266 сообщениях
Отправить сообщение для Mebius с помощью ICQ Отправить сообщение для Mebius с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от [Na`Vi]DendIПосмотреть сообщение
пробоавал делать регулярку длиннее не выходит не парсит(
2 отдельные нет смысла делать по скольку спарсить нужно будет для одного проекта около 30 значений 30 отдельных нет смысла делать(

советую для теста использовать regexbuddy, великолепная прога для теста регулярок

кол-во значений парсится группами, группа в регулярке обозначается скобками.

в твоем варианте

Код:
RegExp.Expression := '<br />(.*?)<br /> ';
в RegExp.Match[0] будет полностью совпадшее с регуляркой значение
в RegExp.Match[1] будет полное совпадение, но только без <br /> с обоих сторон

0 - полное совпадение
1-n = номера групп

но Веталь прав. кпд гораздо быстрее работают и жрут меньше ЦП и ОЗУ компа

Последний раз редактировалось VeTaL_UA; 28.06.2012 в 00:35. Причина: негоже моё имя с маленькой писать
  Ответить с цитированием
Старый 29.06.2012, 12:01   #9
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от MebiusПосмотреть сообщение
советую для теста использовать regexbuddy, великолепная прога для теста регулярок

кол-во значений парсится группами, группа в регулярке обозначается скобками.

в твоем варианте

Код:
RegExp.Expression := '<br />(.*?)<br /> ';
в RegExp.Match[0] будет полностью совпадшее с регуляркой значение
в RegExp.Match[1] будет полное совпадение, но только без <br /> с обоих сторон

0 - полное совпадение
1-n = номера групп

но Веталь прав. кпд гораздо быстрее работают и жрут меньше ЦП и ОЗУ компа

Всем спасибо..
теперь новый вопрос,есть к примеру 2 такие строки:
Код:
<td class="values">2.000</td> 
<td class="values">4.000</td>
Мне нужно спарсить числа,ети числа естественно меняются)
как поступить ?
  Ответить с цитированием
Старый 29.06.2012, 13:00   #10
 Разведчик
Аватар для metra3
 
metra3 никому не известный тип
Регистрация: 18.10.2011
Сообщений: 5
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: как парсить reg expr ?

тебе нужно спарсить именно несколько таких чисел?
reg.expression:='class="values">(.*?)</td>';
if reg.exec(переменная где находится этот текст) then begin
repeat
memo1.lines.add(reg.match[1]);
until not reg.execNext;
end;
  Ответить с цитированием
Старый 29.06.2012, 13:13   #11
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от metra3Посмотреть сообщение
тебе нужно спарсить именно несколько таких чисел?
reg.expression:='class="values">(.*?)</td>';
if reg.exec(переменная где находится этот текст) then begin
repeat
memo1.lines.add(reg.match[1]);
until not reg.execNext;
end;

таких значений около 30( записывание в мемо или переменную не годиться(
  Ответить с цитированием
Старый 29.06.2012, 13:22   #12
 Разведчик
Аватар для metra3
 
metra3 никому не известный тип
Регистрация: 18.10.2011
Сообщений: 5
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от [Na`Vi]DendIПосмотреть сообщение
таких значений около 30( записывание в мемо или переменную не годиться(

так запиши туда, куда надо, или тебе нужно что то одно спарсить? я не могу понять.
  Ответить с цитированием
Старый 29.06.2012, 13:41   #13
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от metra3Посмотреть сообщение
так запиши туда, куда надо, или тебе нужно что то одно спарсить? я не могу понять.

скажу понятней мне надо парсить сайт,и мне нужно спарсить те числа.
  Ответить с цитированием
Старый 29.06.2012, 16:19   #14
 Разведчик
Аватар для metra3
 
metra3 никому не известный тип
Регистрация: 18.10.2011
Сообщений: 5
Популярность: 16
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от [Na`Vi]DendIПосмотреть сообщение
скажу понятней мне надо парсить сайт,и мне нужно спарсить те числа.

тогда чем тебе не подходит тот код, который я скинул выше?
  Ответить с цитированием
Старый 29.06.2012, 18:04   #15
Заблокирован
 Сержант
Аватар для [Na`Vi]DendI
 
[Na`Vi]DendI на правильном пути[Na`Vi]DendI на правильном пути
Регистрация: 06.06.2012
Сообщений: 131
Популярность: 102
Сказал(а) спасибо: 141
Поблагодарили 131 раз(а) в 78 сообщениях
Отправить сообщение для [Na`Vi]DendI с помощью Skype™
 
По умолчанию Re: как парсить reg expr ?

Цитата:
Сообщение от metra3Посмотреть сообщение
тогда чем тебе не подходит тот код, который я скинул выше?

походу я не совсем его понял если не трудно обьясни что к чему в нем) ?
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Парсить функцией Pars ncdos Вопросы и ответы, обсуждения 3 20.06.2012 20:59
Научите парсить WiLLi-WindowS Вопросы и ответы, обсуждения 20 17.06.2012 11:20
[Помогите!] Можно ли через регулярки парсить данные последовательно? iVs.Dark Вопросы и ответы, обсуждения 8 14.08.2011 17:52
Чем парсить сообщества ? AVDEY2010 Свободное обсуждение 0 23.04.2011 20:10
Как парсить с flash? OneShot Вопросы и ответы, обсуждения 20 03.03.2011 19:20

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:19.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net