首页 > 解决方案 > Python - 从 IP 地址中删除前导零

问题描述

我正在尝试从 IP 地址中删除前导零,但它不起作用

import re

def remove_zeros_from_ip(ip_add):
  string = re.sub('(?!(\.0\.))(\.[0]{1,2})', '.', ip_add)  
  return string

ip = '10.0.01.10'
print(remove_zeros_from_ip(ip))

ip1 = '10.00.002.20'
print(remove_zeros_from_ip(ip1))

但得到这个-

10.0.1.10
10..2.20

怎么获得?-

10.0.1.10
10.0.2.20

标签: pythonregexip-address

解决方案


您可以拆分 IP 八位字节,然后将字符串中的八位字节转换为 int,然后再转换回 str。

>>> ip='10.00.01.10'
>>> '.'.join([str(int(x)) for x in ip.split('.')])
'10.0.1.10'

推荐阅读