Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите написать регулярку / 4 сообщений из 4, страница 1 из 1
16.11.2013, 23:47
    #38467529
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать регулярку
Есть таблица на странице с курсами валют на сегодняшний день, мне нежно получить из неё такие данные:

USD 799.3000

вот таблица:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<table width="100%" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td class="col_title_c">Код цифровой</td>
<td class="col_title_c">Код литерный</td>
<td class="col_title_c">Количество единиц</td>
<td class="col_title">Название валюты</td>
<td class="col_title_c">Официальный курс</td>
</tr>
<tr>
<td class="cell_c">795</td>
<td class="cell_c">TMM</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">280.4561</td>
</tr>
<tr>
<td class="cell_c">840</td>
<td class="cell_c">USD</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">799.3000</td>
</tr>
<tr>
<td class="cell_c">960</td>
<td class="cell_c">XDR</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">1220.0278</td>
</tr>

</tbody>
</table>
...
Рейтинг: 0 / 0
17.11.2013, 00:25
    #38467543
неа?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать регулярку
...
Рейтинг: 0 / 0
22.11.2013, 20:16
    #38474932
volodin661
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать регулярку
paha4444Есть таблица на странице с курсами валют на сегодняшний день, мне нежно получить из неё такие данные:

USD 799.3000

вот таблица:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<table width="100%" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td class="col_title_c">Код цифровой</td>
<td class="col_title_c">Код литерный</td>
<td class="col_title_c">Количество единиц</td>
<td class="col_title">Название валюты</td>
<td class="col_title_c">Официальный курс</td>
</tr>
<tr>
<td class="cell_c">795</td>
<td class="cell_c">TMM</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">280.4561</td>
</tr>
<tr>
<td class="cell_c">840</td>
<td class="cell_c">USD</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">799.3000</td>
</tr>
<tr>
<td class="cell_c">960</td>
<td class="cell_c">XDR</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">1220.0278</td>
</tr>

</tbody>
</table>



===========================================================================================

#!/usr/bin/perl
use utf8;
use 5.10.0;

my $string=<<EOF;
<table width="100%" cellspacing="2" cellpadding="2">
<tbody>
<tr>
<td class="col_title_c">Код цифровой</td>
<td class="col_title_c">Код литерный</td>
<td class="col_title_c">Количество единиц</td>
<td class="col_title">Название валюты</td>
<td class="col_title_c">Официальный курс</td>
</tr>
<tr>
<td class="cell_c">795</td>
<td class="cell_c">TMM</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">280.4561</td>
</tr>
<tr>
<td class="cell_c">840</td>
<td class="cell_c">USD</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">799.3000</td>
</tr>
<tr>
<td class="cell_c">960</td>
<td class="cell_c">XDR</td>
<td class="cell_c">100</td>
<td class="cell"></td>
<td class="cell_c">1220.0278</td>
</tr>

</tbody>
</table>
EOF

#собираем в массив @td все значения тэгов td
while ($string =~ m{<td}g) {

$string =~ m{\G.+>([^<]+)</td>};
push @td, $1;
}

#находим индекс ячейки массива в которой лежит слово USD
ждёмс while $td[$index++] ne 'USD';

say $td[$index+2];

sub ждёмс{}


======================================================================================================
баловство с русскими именами переменных проверять под Линуксом, под Виндусом проблемы с кодировкой utf-8 в консольном окне.
...
Рейтинг: 0 / 0
23.11.2013, 01:16
    #38475075
preg_match
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать регулярку
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
//PHP
$code = 'USD';
preg_match(
     sprintf('|<[^>]+>%s<[^>]+>.*?<[^>]+>.*?<[^>]+>.*?<[^>]+>.*?<[^>]+>.*?<[^>]+>(.*?)<[^>]+>|si', $code),
     $tableString, 
     $out
);
var_dump($code . ' = ' . $_needle =& $out[1]);   
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите написать регулярку / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]