Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - Странно работает регулярное выражение / 1 сообщений из 1, страница 1 из 1
07.11.2014, 11:10
    #38798236
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl - Странно работает регулярное выражение
Есть примерно такой текст:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        10 ARP requests sent
        1461 ARP replies sent
        52437 ARP requests received
        6 ARP replies received
        52443 ARP packets received
        302 total packets dropped due to no ARP entry
        7 ARP entrys timed out
        0 Duplicate IPs seen
Есть такой код:
Код: php
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.
$map =
{
	'([0-9]+).*request.*sent'=>'out_request',
	'([0-9]+).*repl.*sent'=>'out_reply',
	'([0-9]+).*request.*received'=>'inp_request',
	'([0-9]+).*repl.*received'=>'inp_reply',
	'([0-9]+).*packet.*received'=>'inp_total',
	'([0-9]+).*packet.*dropped.*no ARP entr'=>'noarp',
	'([0-9]+).*entr.*timed out'=>'timeout',
	'([0-9]+).*Duplicate IPs seen.'=>'ipdup',
};
#код в цикле
#$row - текущая строка текста
my $value = $row;
print "$row\n";
foreach my $re (keys %{$map})
{
	$value =~ /$re/;
	if ($1)
	{
		$value = $1;
		print "  - field $map->{$re} = $value\n";
		last;
	}
}


И такой код дает такой вывод:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        0 ARP requests sent
        0 ARP replies sent
        13 ARP requests received
  - field inp_request = 13
        0 ARP replies received
        13 ARP packets received
  - field inp_total = 13
        0 total packets dropped due to no ARP entry
        0 ARP entrys timed out
        0 Duplicate IPs seen
Причем вывод для разных значений в тексте различается.
Почему не срабатывает регулярное выражение?
________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl - Странно работает регулярное выражение / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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