我想从不同长度的变量中提取最后两个字段值。例如,请考虑以下三个值:
fe80::e590:1001:7d11:1c7e
ff02::1:ff1f:fb6
fe80::7cbe:e61:f5ab:e62 ff02::1:ff1f:fb6
这三条线的长度可变。如果我用分隔符分割每一行,我想只提取最后两个字段值:
也就是说,从三行开始,我想:
7d11, 1c7e
ff1f, fb6
ff1f, fb6
可以使用split()
完成吗?我没有得到任何想法。
答案 0 :(得分:24)
如果s
是包含IPv6地址的字符串,请使用
s.split(":")[-2:]
获取最后两个组件。 split()
方法将返回所有组件的列表,[-2:]
将对此列表进行切片以仅返回最后两个元素。
答案 1 :(得分:18)
您可以使用str.rsplit()
从右侧分割:
>>> ipaddress = 'fe80::e590:1001:7d11:1c7e'
>>> ipaddress.rsplit(':', 2) # splits at most 2 times from the right
['fe80::e590:1001', '7d11', '1c7e']
这可以避免不必要地分割地址的第一部分。