logo
logo

Форум Кто разбирается в регэкспах помогите окучить данный сервис

создать новую тему раскрыть все
Кто разбирается в регэкспах помогите окучить данный сервис Евгений 06/09/2009 14:33 #написать ответ
http://currency.in.ua/arch/?bankua&2009-09-02
Для модераторов Евгений 06/09/2009 14:35 #написать ответ
Перенесите пожалуйста в тему о универсальном плаигне для загрузки курсов валют.
Та тема и так слишком большая. Пусть лучше будет новая (-) Loki 07/09/2009 18:36 #написать ответ
Как работает плагин я не знаю Loki 07/09/2009 21:37 #написать ответ
Но данные по котировкам можно выцепить вот такой регуляркой:
<caption>Котировки.+?center>(\w{3}).+?right>([\d,]+).+?center>(\w{3}).+?right>([\d,]+).+?center>(\w{3}).+?right>([\d,]+)

Спасибо. Не получилось. Евгений 08/09/2009 14:37 #написать ответ
Попробовал с такими значениями:
Name=currency.in.ua
PageURL=http://currency.in.ua/arch/?bankua&%yyyy%-%mm%-%dd%
EstimatedPageSize=42000
HomeCurrencyCode=UAH
HomeCurrencyName=Гривна
Prologue=<caption>Котировки межбанковского валютного рынка Украины на&nbsp;(?<date>.*?)</caption>*?</th></tr>
Record=tr><td class='r0' align=center>(?<code>.*?)</td><td class='r0'>(?<name>.*?)</td><td class='r0' align=right>(?<value1>.*?)</td>*?</nobr></td></tr>
Epilogue=</table>
Всё почти верно :) Дим(м) 12/09/2009 18:12 #написать ответ
Но закралось нескольно небольших ошибок:
1. перед '*?' надо не забывать точку, иначе смысл совсем другой (см. конец Prologue и Record)
2. вы забыли также про DecimalSeparator - на этом ресурсе он отличается от стандартного
3. привязка к class='r0' выбирает только нечётные строки таблицы
 
итого:
[currency.in.ua]
Name=currency.in.ua
PageURL=http://currency.in.ua/arch/?bankua&%yyyy%-%mm%-%dd%
EstimatedPageSize=42000
HomeCurrencyCode=UAH
HomeCurrencyName=Гривна
Prologue=<caption>Котировки межбанковского валютного рынка Украины на&nbsp;(?<date>.*?)</caption>.*?</th></tr>
Record=tr><td.*?>(?<code>.*?)</td><td.*?>(?<name>.*?)</td><td.*?>(?<value1>.*?)</td>.*?</tr>
Epilogue=</table>
DecimalSeparator=,
Почти работает Евгений 28/09/2009 23:11 #написать ответ
цепляет одну лишнюю строку (на завтра). только вернулся из отпуска - завтра проверю.