![]() |
|
Модераторы: ginnie |
![]()
|
|
| tcg2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 26.9.2006 Репутация: нет Всего: нет |
Помогите извлеч IP и port от данного примера с помощью perl если в файле содержится такого рода информация
192.168.0.44.80 44.5.234.66.23 и резултат записать в масив на выходе в таком виде: 192.168.0.44 80 44.5.234.66 23 Делаю я вот так,знаю что не совсем так, но если б знал как надо, не спрашивал бы, так что сильно не судите : ... $ip = m/\d+\.\d+\.\d+\.\d+/; $port = s/\d+\.\d+\.\d+\.\d+// && s/\.//; @arr = ($ip,$port); print ("@arr\n"); ... (меня интересует конкретно ета часть) |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: нет Всего: 27 |
Не совсем понятно чего вы точно хотите, но думаю этот код вам поможет:
-------------------- Died at Life.pl line 21 |
|||
|
||||
| tcg2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 26.9.2006 Репутация: нет Всего: нет |
Почему при токай строке в програме
$ip = m/\d+\.\d+\.\d+\.\d+/; при компиляции выдается для $ip вот такой результат 1 , что как бы ip = 1, несмотря что ip адреса разные? Это сообщение отредактировал(а) tcg2 - 6.4.2008, 21:41 |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: нет Всего: 84 |
tcg2, документацию прочтите по рег.выражениям.
Вместо = используйте =~ Это сообщение отредактировал(а) nitr - 6.4.2008, 22:21 |
|||
|
||||
| tcg2 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 26.9.2006 Репутация: нет Всего: нет |
Ну и так делал как велили все равно ему не нравится
Может еще раз попробуем, допустим строка такая:
из нее нужно будет извлеч IP адрес и порт в таком примерно виде, с портом я разобрался, а с IP не могу:
...(Perl) $ip = m/\d+\.\d+\.\d+\.\d+/; при таком раскладе в качестве IP выдается '1' $ip =~ m/\d+\.\d+\.\d+\.\d+/;при таком раскладе в качестве IP выдается 'ничего' |
||||
|
|||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
а скобочки нигде не нужны?
З.ы $ip = m/\d+\.\d+\.\d+\.\d+/; при таком раскладе в качестве IP выдается '1' просто показывает , что регулярка найдена. ЗЫЫ
Это сообщение отредактировал(а) shamber - 7.4.2008, 11:45 |
|||
|
||||
| Loki |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 244 Регистрация: 9.7.2006 Репутация: нет Всего: нет |
А как разбить строчку, например...
Так что-бы каждая цифра 192, 168, 20, 0/24 была отдельной переменной? |
|||
|
||||
| tcg2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 26.9.2006 Репутация: нет Всего: нет |
Спасибо искренее! Выручили, все работает!
|
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
Loki,
в переменных $1, $2, $3 и $4 будет то что надо. А так идите в раздел почитайте. |
|||
|
||||
| Loki |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 244 Регистрация: 9.7.2006 Репутация: нет Всего: нет |
Ок, а может еще идею подкините...
Нужно все это складывать таким образом в ексель, что калонки $1 $2 $3 $4 уже заполнены и нужно найти совпадение всех четырех значений в строке, покрасить это строку. |
|||
|
||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: нет Всего: 4 |
тебе уже в раздел в VBA пора
|
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: нет Всего: 84 |
tolkien, почему же, перл разочулся работать с Excel?
Loki, по правилам форума - новую тему. И когда создадите, постарайтесь более вразуметельно задать вопрос. |
|||
|
||||
| tcg2 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 26.9.2006 Репутация: нет Всего: нет |
Ребята, выручитеще раз?
Есть такая строка, нужно записать в переменную, все что находится, взято на чтение с конца к началу до первого пробела, или короче($_ = 1160):
|
|||
|
||||
| KSURi |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: нет Всего: 27 |
или
Это сообщение отредактировал(а) KSURi - 21.4.2008, 11:49 -------------------- Died at Life.pl line 21 |
||||
|
|||||
| tishaishii |
|
|||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Это сообщение отредактировал(а) tishaishii - 23.4.2008, 16:02 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |