python匹配不规则字符串的IP地址

201 阅读1分钟
import re
from pprint import pprint
def func():    # 读取文件中-不规则字符串的ip地址-并做列表保存    
    with open('./result.txt', 'r', encoding='utf-8') as f:        
        content = f.read()        
        ipaddr = re.findall(r'\D(?:\d{1,3}\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\D', content)        
# 获取列表没去掉括号        # print(ipaddr)    # pass    
    ip_list = []    
    for r in ipaddr:        
    # 正则提取ip
        re_result = re.search(r'((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)', r)        
        if re_result:            # 匹配成功则将ip地址添加到列表中            
            ip_list.append(re_result.group())    # 输入结果列表 set 去重    
    pprint(set(ip_list))
if __name__ == '__main__':   
    func()

import re
from pprint import pprint
def func():    # 读取文件中-不规则字符串的ip地址-并做列表保存    
    with open('./result.txt', 'r', encoding='utf-8') as f:        
        content = f.read()        
        ipaddr = re.findall(r'\D(?:\d{1,3}\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\D', content)        
# 获取列表没去掉括号        # print(ipaddr)    # pass    
    ip_list = []    
    for r in ipaddr:        
    # 正则提取ip
        re_result = re.search(r'((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)', r)        
        if re_result:            # 匹配成功则将ip地址添加到列表中            
            ip_list.append(re_result.group())    # 输入结果列表 set 去重    
    pprint(set(ip_list))
if __name__ == '__main__':   
    func()