我正在使用arp -a
命令读取LAN上的MAC地址并解析输出.在OS X上,返回一些MAC地址,其中十六进制值缺少前导零.我已经想出如何使用正则表达式插入前导零:
>>> mac = '8:AA:C:3:ED:E' >>> mac = re.sub('^(?P.)(?=\:)','0\g ',mac) >>> mac = re.sub('(?<=\:)(?P .)(?=\:)','0\g ',mac) >>> mac = re.sub('(?<=\:)(?P .)$','0\g ',mac) >>> print mac 08:AA:0C:03:ED:0E
这是有效的,但我确信有一种方法可以在一行中为任意MAC地址执行替换,其中任何十六进制值都可能缺少前导零...我只是想不出来.