![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Kurtjke |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.9.2011 Репутация: нет Всего: нет |
Подскажите пожалуйста,как с помощью boost/regex вытащить из странички курс валют.Знаю что это не сложно,но сам уже целый день разобраться не могу
![]()
пробовал вытащить через regex_match пробовал использовать правило (EUR*)\\w+(\\d+?).+(\\d+?) Это сообщение отредактировал(а) Kurtjke - 4.10.2011, 00:48 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Kurtjke, ты кусок кода страницы представь тут. А то не хотелось бы гадать на кофейной гуще, для какого сайта тебе нужен regexp.
|
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
вот так попробуй:
EUR.*?(\\d+,\\d+).*?(\\d+,\\d+) RUB.*?(\\d+,\\d+).*?(\\d+,\\d+) Это сообщение отредактировал(а) fish9370 - 4.10.2011, 09:28 -------------------- undefined |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Тут напрашивается 2х ходовка - сначала удалить все тэги <...> (заменить на пробелы), потом из того, что осталось искать твои EUR. А то завтра на страничке добавят еще какой нибудь <b> </b> вокруг 10,65 и весь твой regex пойдет лесом
![]() |
|||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
ну зачем же так пугать? .*? - как раз и обеспечивает независимость от любых вставок (ну за исключением цифр).. -------------------- undefined |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
это повлияет только если там появится шаблон "(\\d+,\\d+)", а это крайне мало вероятно.. вобщем, не вижу смысла парсить http без достаточных на то оснований.. регулярные выражения мощнейший инструмент.. и здесь это втему..
-------------------- undefined |
|||
|
||||
Kurtjke |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.9.2011 Репутация: нет Всего: нет |
Спасибо за ответы!Разбирает нормально,но при попытке записать результаты в файл вылетает ошибка
error C2664: 'WriteFile' : cannot convert parameter 2 from 'boost::match_results<BidiIterator>' to 'LPCVOID' Это как то преобразовать тип данных надо? |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
А я и не предлагаю парсить. Я предлагаю теми же regex'пами выкусить все <[^>]*> (т.е. сделать их замену на пустую строку), а уж потом искать что надо. Насколько я помню boost::regex это умеет. Точно умеет - regex_replace
Это сообщение отредактировал(а) xvr - 6.10.2011, 09:55 |
||||
|
|||||
Kurtjke |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.9.2011 Репутация: нет Всего: нет |
О,спасибо)!
|
|||
|
||||
Kurtjke |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.9.2011 Репутация: нет Всего: нет |
что я делаю не так?
выходной файл остается пустым( Это сообщение отредактировал(а) Kurtjke - 6.10.2011, 22:46 |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
Kurtjke |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 12.9.2011 Репутация: нет Всего: нет |
выдает вот такую ошибку:
И происходит что то непонятное:я скачиваю страницу,сохраняю,она нормально открывается. После того как я пытаюсь ее парсить ,а потом привожу код к начальному виду ,страница сохраняется , но уже с другой кодировкой:
думаю в из за этого ничего и не получается. Это сообщение отредактировал(а) Kurtjke - 7.10.2011, 23:12 |
||||||||
|
|||||||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
semibug |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
Как экзотический вариант можно применить к HTML странице XSLT преобразование, тогда в случае чего можно поправить только XSL файл, без пересборки программы.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |