我试图验证输入以查看其是否为有效的IP地址(可以是部分IP地址)。
可接受的输入:172,172.112,172.112.113,172.112.113.114
不能接受的输入:1724,172.11113等
这是我创建的用于对其进行检查的函数(但是它会验证无法接受的输入,例如1724,我似乎无法修复..请帮助)
def ipcheck(ip):
ippattern_str = '(([1-2]?[\d]{1,2}\.?){0,1}(\.[1-2]?[\d]{1,2}){0,1}(\.[1-2]?[\d]{1,2}\.){0,1}(([1-2]?[\d]{1,2}[\D\W]*)'
ippattern = re.compile(ippattern_str)
# ippattern is now used to call match, passing only the ip string
global matchip
matchip = ippattern.match(ip)
return matchip
ip = sys.argv[1]
ipcheck(ip)
print matchip
我觉得也许我需要正确使用锚点?我已经尽我所能尝试了一切,将不胜感激。
最佳答案
这个正则表达式可以解决问题:
^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){0,3}$
它确保给定的数字在正确的范围内(0-255),并且可以包含1-4个部分。
您可以在此处查看其运行情况:http://regexr.com?2va3j
关于python - python IP验证REGex验证全部和部分IP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8269376/