我正在尝试从字符串
中提取IP地址import re
stri_ = '''192.168.1.1,192.168.1.2/32,192.168.1.5-192.168.1.7,reject,
reject,192.168.1.1/32,reject
172.168.1.4-172.168.1.4,reject
'''
ip_addr_with_range = re.findall('([0-9+-reject]+)\,(reject)*',stri_)
ip_addr_without_range = re.findall('/([0-9\-reject]+)*',stri_)
for i in ip_addr_with_range :
print (i[0])
我的出场
192.168.1.1,192.168.1.2/32,192.168.1.5-192.168.1.7,reject,reject,192.168.1.1/32
172.168.1.4-172.168.1.4
所需
ip_addr_with_range
[192.168.1.1,192.168.1.2/32,192.168.1.5,192.168.1.7,192.168.1.1/32,172.168.1.4,172.168.1.4]
ip_addr_without_range
[192.168.1.1,192.168.1.2,192.168.1.5,192.168.1.7,192.168.1.1,172.168.1.4,172.168.1.4]
答案 0 :(得分:1)
这应该有效。
ip_addr_with_range = re.findall('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/?\d{0,}', stri_)
ip_addr_without_range = re.findall('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', stri_)
答案 1 :(得分:0)
ip_addr_without_range= re.findall(r'(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})',stri_)
ip_addr_without_range
['192.168.1.1',
'192.168.1.2',
'192.168.1.5',
'192.168.1.7',
'192.168.1.1',
'172.168.1.4',
'172.168.1.4']