我试图用regex在一个文件中找到唯一的IP地址实例。我发现它们很好,并尝试将它们附加到一个列表中,然后尝试使用列表中的set()
来删除重复项。我发现每一个项目都很好,有重复,但我不能让清单简化。打印“我的设置”的输出与打印IP作为列表相同,不会删除任何内容。在
ips = [] # make a list
count = 0
count1 = 0
for line in f: #loop through file line by line
match = re.search("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", line) #find IPs
if match: #if there's a match append and keep track of the total number of Ips
ips.append(match) #append to list
count = count + 1
ipset = set(ips)
print(ipset, count)
这个字符串<_sre.SRE_Match object; span=(0, 13), match='137.43.92.119'>
在尝试set()
列表之前和之后在输出中显示60多次
您没有存储匹配的字符串。您正在存储^{} objects 。即使它们匹配相同的文本,它们的比较也不相等,因此它们都被
set
对象视为唯一的:而是提取匹配的文本:
^{pr2}$不带参数的^{} 返回匹配的字符串部分(组0):
相关问题 更多 >
编程相关推荐