Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> preg_match_all 
:(
    Опции темы
box
Дата 12.12.2010, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



   

Всем привет!
как загнать в массив на перле типа как в пхп preg_match_all
и как потом извлечь данные ?
PM MAIL   Вверх
arto
Дата 12.12.2010, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



что такое preg_match_all?
PM MAIL ICQ   Вверх
box
Дата 12.12.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



я видимо не правельно сформулировал вопрос .
а вопрос следующем :
есть переменная $packet надо разобрать по следующей регулярке 
Код

    ($client, $host)=~ /(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/g;

и загнать результат в двумерный массив

я пробую так :
Код

    @all =($packet=~ /(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/g);

но так получается одномерный массив а надо двумерный.

Это сообщение отредактировал(а) box - 12.12.2010, 13:48
PM MAIL   Вверх
arto
Дата 12.12.2010, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



while (m/(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/g) { push @ary,[ $1,$2 ] }
PM MAIL ICQ   Вверх
box
Дата 12.12.2010, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



то что надо , а как потом пробежаться по массиву типа :
Код

foreach(@ary){
........
}

PM MAIL   Вверх
gcc
Дата 12.12.2010, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



как-то так:
Код

foreach(@ary){

print "\n\n\n";
print $_[0]."\n";
print $_[1]."\n";
}


Это сообщение отредактировал(а) gcc - 12.12.2010, 14:15
PM WWW ICQ Skype GTalk Jabber   Вверх
box
Дата 12.12.2010, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 27.2.2007

Репутация: нет
Всего: 0



не работает

Добавлено через 13 минут и 49 секунд
и не понятно еще одно, как применить данный код по отношению к переменной $packet 
Код

while (m/(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/g) { push @ary,[ $1,$2 ] }

PM MAIL   Вверх
gcc
Дата 12.12.2010, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17




Код

my $ary;
while ( $packet =~ m/(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/g) { push @$ary,[ $1,$2 ] }

use Data::Dumper;
print Dumper $ary;

foreach(@$ary){

print "\n\n\n";
print $_->[0]."\n";
print $_->[1]."\n";
}


PM WWW ICQ Skype GTalk Jabber   Вверх
Logo
Дата 12.12.2010, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Только если цель не сложить данные в массив, а как-то их обработать, обычно  проще сразу делать это в цикле.
Код

while ( $packet =~ m/(\d+\.\d+\.\d+\.\d+).+ > (\d+\.\d+\.\d+\.\d+)/g ) {
  my $client = $1;
  my $host = $2;
  ...
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.