Поиск адресов с помощью функций карты и фильтра - Pyhton - PullRequest
0 голосов
/ 24 апреля 2020

Я должен найти адреса IPv4 в текстовом файле. Формат адресов IPv4 - «пунктирная четверка», то есть 4 числа (0-255), разделенные точками (.)

Я получил это, но моя проблема в том, что я должен использовать функции карты и фильтра .

Вот что у меня есть

def buscarIPv4(file):
    for line in file:
        b=[]
        pattern = re.compile('(\s[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)')
        a = pattern.search(line)        
        pos_texto = line.find(line)
        if a is not None:
            b = a.group(1)
            print(b)
    return 

Может кто-нибудь помочь мне с этим? Я должен найти адрес IPv4 в файле .txt, используя карту и фильтр

1 Ответ

0 голосов
/ 24 апреля 2020

're' явно лучший вариант.

import re

ips = re.findall('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})',open(file).read())

Но если вы не можете это использовать, то вам нужно разбить файл на слова и обработать слова. Примерно так должно работать:

def is_ip(word):
    ds = word.split('.')
    return len(ds)==4 and all(d.isdigit() for d in ds) and all(0<=int(d)<=255 for d in ds)

ips = list(filter(is_ip,open(file).read().split()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...