2015-10-12 1 views
1

У меня есть текстовый файл с IP-адресами и другими данными, который похож на это ниже:Извлечь все IP-адрес из текстового файла и заполнить массив

name 8.8.8.8 1 1 200,940 *** 
company 139.130.4.5 1 1 365,550 *** 

Я пытаюсь получить IP-адрес и добавить в массив. Я считаю, что мне нужно регулярное выражение

r'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' 

но как я могу прочитать и найти каждое событие? Я также читал об IPAdr, но, похоже, используется для управления/проверки IP-адресов.

ответ

0
a = [] 
File.new("/path_to_file") 
.each_line{|s| a << s[/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/]} 
a # => ["8.8.8.8", "139.130.4.5"] 
+0

спасибо большое, но не могли бы вы объяснить мне, что этот бит делает .each_line {| s | a << s – Wizzle

+0

Он добавляет согласованную подстроку к массиву. – sawa

+0

Я собираю это. Я имею в виду, как это работает | s | a << является s подстрокой? – Wizzle

Смежные вопросы