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

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

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

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

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

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

Всем привет! Спарсил страничку теперь нужно спарсить 10 слов оттуда
Регулярками, как спарсить одно слово я знаю а как спарсить сразу 10? и записать их в memo1.lines?

Так я парсил одно слово или строку..

Код:
Memo1.Lines.Add(idhttp1.Get('https:/Site.ru/internet/statistic'));
 HTTP:=TIdHTTP.Create;
str:=Memo1.Text;
prx2:=TStringList.Create;
reg2:= Tregexpr.Create;
reg2.Expression:='<span style="font-weight: bold; color: Black;">(.*?)</span>';// balance
if reg3.Exec(str)then repeat
prx2.Add(reg2.Match[1]);
until
not
reg2.ExecNext;
Memo2.Lines.Add(prx2.Text);
а как спарсить несколько?
По гуглить не мог так как не знаю как правильно сформулировать свой вопрос)
Может есть примерчик
Заранее спасибо....
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 11.05.2014, 17:31   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

хоть 1 хоть 10 хоть 100500, ничем не отличается.
eval вне форума Ответить с цитированием
Старый 11.05.2014, 17:45   #3
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
хоть 1 хоть 10 хоть 100500, ничем не отличается.
примерчик есть?
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 11.05.2014, 17:57   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

чем ваш не устраивает?
eval вне форума Ответить с цитированием
Старый 11.05.2014, 18:03   #5
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
чем ваш не устраивает?
да у меня работает он просто надо спарсить около десяти тегов и записать в мемо1!=) Как спарсить один тег я знаю а как несколько спарсить? С регулярками только знакомлюсь....
Еще вопрос, может и не в тему он.
Если одновременно парсить сразу 10 строк то это лучше сделать в отдельном потоке? т.к. Это будет виджет и пока программа будет парсить то главная форма может подвиснуть... я так думаю еще не создавал потока..
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 11.05.2014, 18:06   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Как спарсить один тег я знаю а как несколько спарсить?
я же сказал, хоть мильён, нет никакой разницы в количестве.
Цитата:
Если одновременно парсить сразу 10 строк то это лучше сделать в отдельном потоке?
в отдельном компьютере лучше, главная форма стопудово не подвиснет
eval вне форума Ответить с цитированием
Старый 11.05.2014, 18:18   #7
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
я же сказал, хоть мильён, нет никакой разницы в количестве.
в отдельном компьютере лучше, главная форма стопудово не подвиснет
хорошо с потоками понятно а как на счет регулярок?
Я же по русский написал что знаю как спарсить 1 тег знаю как спарсить 10 одиниковых тегов.
Например:
<div>Слово</div>

<td>Слово</td>
<td>Слово</td>
<td>Слово</td>

А вот чтоб спарсить допустим
<span>Инфа</span>
<tr>Инфа</tr>
<td>инфа</td>
Это как спарсить по очереди и записать в мемо не знаю.... или я не так пишу или люди не так понимают....
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Старый 11.05.2014, 18:27   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

это вы не понимаете, 3 раз повторяю, что 1 что 10 - нет разницы
eval вне форума Ответить с цитированием
Старый 11.05.2014, 18:31   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Предположу:
Код:
reg2.Expression:='<span>(.*?)</span>|<tr>(.*?)</tr>|<td>(.*?)</td>';
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.05.2014, 19:05   #10
Fahman
Форумчанин
 
Аватар для Fahman
 
Регистрация: 03.04.2013
Сообщений: 703
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Предположу:
Код:
reg2.Expression:='<span>(.*?)</span>|<tr>(.*?)</tr>|<td>(.*?)</td>';
Пробовал не катит....(
Код:
reg2.Expression:='<span style="font-weight: bold; color: Black;">(.*?)</span>|<span id="TrafficSpan" style="font-weight: bold; color: Black;">(.*?)</span>';
Если парсить отдельно
Код:
reg2.Expression:='<span style="font-weight: bold; color: Black;">(.*?)</span>';
То парсит норм а если совместить 2 тега то не парсит ничего(((
второй тег
Код:
reg2.Expression:='<span id="TrafficSpan" style="font-weight: bold; color: Black;">(.*?)</span>';
99% ошибок компьютера сидит в полуметре от монитора.
Fahman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с регулярками. Smogg C# (си шарп) 1 06.01.2014 17:01
Проблема с регулярками в javascripot helldog JavaScript, Ajax 2 04.11.2012 22:52
Проблемка с регулярками в javascript helldog JavaScript, Ajax 3 29.10.2012 17:04
Проблема с регулярками. denis7656 PHP 0 13.05.2012 00:36
Проблема с регулярками. Den7656 PHP 1 27.02.2012 19:36