需求:
有一个列表,表中元素包含IP地址,空元素,文字。想从这个列表中匹配出特定规律的IP地址,列表见下图
testip = [‘’, ‘’, ‘’, ‘IP(30位)’, ‘’, ‘24.45.127.2’, ‘24.45.127.6’, ‘24.45.127.10’, ‘24.45.127.14’, ‘24.45.127.18’,
‘24.45.127.22’, ‘24.45.126.6’, ‘24.45.126.10’,’24.45.126.138’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘备注’, ‘’, ‘’, ‘’, ‘’,
‘IP(24位)’, ‘’, ‘’, ‘’,’’, ‘’, ‘IP(30位)’, ‘24.44.116.253’, ‘24.44.116.10’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’, ‘’,
‘’, ‘’, ‘’, ‘’, ‘’, ‘’]
想要匹配的IP的特定规律是:从列表的第一个IP开始,直到出现空元素结束。
之前有个热心大佬帮忙给写了一个表达式匹配,我也验证成功啦,但是有几个点没有搞明白(小白,研究了几天也没找到相关资料),表达式如下:
IP_new_list = re.findall(r’(?<=,,)(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}.*?)(?=,,)’,’,’.join(testip))[0].split(‘,’)
表达式已经验证,可以满足需求,但是表达式中开头的(?<=,,)和结束的(?=,,)没明白啥意思,各位大神帮忙指点下,多谢
当前的理解是这两个分组是用于匹配从哪里开始匹配,从哪里结束匹配的,这里里两个逗号可以匹配空元素吗??