<p>@franciscosolima的解决方案很好。正则表达式还有另一种方法。你知道吗</p>
<pre><code>iplist = ['', '', '', '', '', '', '', 'Pool Member IP', '', '10.100.33.184 (S56723FR6VL01)', '10.100.33.183 (S56723FR6VL02)', '', '', '', '', '', '', '', '10.101.33.182 (S56723FR6VL03)', '10.100.33.181 (S56723FR6VL04)', '', '', '', '', '', '', '', '10.100.33.180 (S56723FR6VL05)', '10.100.33.179 (S56723FR6VL06)', '', '', '', '', '', '', '', '10.100.33.178 (S56723FR6VL07)', '10.100.33.177 (S56723FR6VL08)', '', '', '', '', '', '', '', '10.100.33.90 (S56723FR6VL09)', '', '', '', '', '', '', '', '', '10.100.33.89 (S56723FR6VL0A)', '', '', '', '', '', '', '', '', '10.100.33.91 (S56723FR6VW01)', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
import re
p = re.compile('[\d]+(?:\.[\d]+){3}')
pools = [[]]
for ip in iplist:
m = p.match(ip)
if m:
pools[-1].append(m.group(0))
elif not pools[-1]:
continue
else:
pools.append([])
if [] in pools:
pools.remove([])
for i, p in enumerate(pools, 1):
print("Group " + str(i) +": " + str(p))
</code></pre>
<p>只需将连续的匹配项添加到同一个池中即可。否则,请初始化一个新的。regex模式将从一开始就匹配,您可以将其配置为检测IPv6地址。你知道吗</p>
<p>打印输出:</p>
<pre><code>Group 1: ['10.100.33.184', '10.100.33.183']
Group 2: ['10.101.33.182', '10.100.33.181']
Group 3: ['10.100.33.180', '10.100.33.179']
Group 4: ['10.100.33.178', '10.100.33.177']
Group 5: ['10.100.33.90']
Group 6: ['10.100.33.89']
Group 7: ['10.100.33.91']
</code></pre>