Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2014, 20:16   #1
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию reg expr

Как всегда парсинг, парсить я сам буду а точнее я уже парсил это 1 раз но я поменял комп и все мои примеры пропали, перерыл гугл не нашел блин а вспомнить не могу... Может кто знает подскажет?
Надо регулярками спарсить 2 разных тега то что между эти тегами тонее
<td class="center info">Тут инфа</td>
и
<td class="left event">Промышленное производство (Ежемесячный)&nbsp;<span class="smallGrayP newSiteIconsSprite" title="_ec_preliminaryRelease">&nbs p;</span></td>

То что мне надо я отметил красным, результат у меня был таким
Тут инфа Промышленное производство (Ежемесячный)
записанное в memo кто подскажет тому ничего не будет) просто и сам что то не могу вспомнить.... Заранее спасибо тем кто помог без лишних слов
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 29.06.2014, 20:38   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
парсить я сам буду
а что тогда вы спрашиваете?
регексп это и есть парсинг... зная его, считай распарсил
eval вне форума Ответить с цитированием
Старый 29.06.2014, 20:48   #3
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а что тогда вы спрашиваете?
регексп это и есть парсинг... зная его, считай распарсил
Нет, понимаете у меня был пример но вот на компе на том 2 харда накрылись сами по себе были забиты на нет а я от лени не переписал ни куда вот сейчас мне понадобился этот код а точнее спарсить а примеров нет((( вот и решил по просить подсказать)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 29.06.2014, 20:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Заранее спасибо тем кто помог без лишних слов
Я конечно не спец в регулярках. Мне как-то MSHTML ближе будет, но... Попробуй перечитать свои темы - возможно в них есть то, что подтолкнет твою память к верному решению. Я иногда так и делаю, когда наработка теряется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.06.2014, 21:03   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я конечно не спец в регулярках. Мне как-то MSHTML ближе будет, но... Попробуй перечитать свои темы - возможно в них есть то, что подтолкнет твою память к верному решению. Я иногда так и делаю, когда наработка теряется.
Да это тоже вариант) но помоему можно другим способом... так как мне надо 2 разных тега и он не один а их несколько, можно спарсить сперва 1 тег а потом второй тег и потом 2 мемо склеить ))) Ну это как вариант а так пока ни знаю завтра после работы гляну....
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 29.06.2014, 21:08   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

лучше 3 мемо клеить
eval вне форума Ответить с цитированием
Старый 29.06.2014, 21:41   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
лучше 3 мемо клеить
Верно. А лучше по одному мемо на каждый элемент чтоб уж наверняка.
Цитата:
а потом второй тег и потом 2 мемо склеить
Ты не о том думаешь. Тебеб нужно регулярное выражение вспоминать, раз этим путем идешь, да оборачивать получение данных в функцию, а ты о клее все говоришь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 02:05   #8
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Код:
RegExpr.Expression := '<td class="center info">(.*?)</td>';
Цитата:
любой_тег(.*?)любой_тег
UKRtortik вне форума Ответить с цитированием
Старый 30.06.2014, 16:47   #9
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от UKRtortik Посмотреть сообщение
Код:
RegExpr.Expression := '<td class="center info">(.*?)</td>';
Это я знаю) Лучше бы подсказали как сразу 2 спарсить)
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 30.06.2014, 22:18   #10
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию

Цитата:
Сообщение от Fahman Посмотреть сообщение
Это я знаю) Лучше бы подсказали как сразу 2 спарсить)
А зачем именно регулярками? ПОчему не просто функцией Pars?

Код:
function Pars(T_, ForS, _T: string): string;
var a, b: integer;
begin
Result:='';
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_, ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then Result:=Copy(ForS, 1, b-1);
end;
И парсишь (Пример на синапсе):

Код:
var
teg1,teg2:string;
html:tstringlist;
http:thttpsend;
begin
http.HTTPMethod('GET', 'http://');
html:=TStringList.Create;
html.LoadFromStream(http.Document);
teg1:=Pars('<td class="center info">', html.Text, '</td>');
teg2:=Pars('<td class="left event">', html.Text, '&');
html.free;
http.free;
UKRtortik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регистрация на REG.RU ArtGrek Свободное общение 5 14.02.2011 12:15
запуск reg файла SL1CK Общие вопросы Delphi 3 21.11.2009 22:17
reg файл VadEr Windows 2 14.07.2009 16:56