更新 :最初的答案对2011年有效,但自2012年以来,使用Python的 ipaddress
stdlib模块可能会更好-
除了检查IPv4和IPv6的IP有效性之外,它还可以做很多其他事情。 </update>
看来您正在尝试验证IP地址。正则表达式可能不是最好的工具。
如果您想接受所有有效的IP地址(包括您甚至可能都不知道的某些有效地址),则可以使用IPy
(源):
from IPy import IPIP('127.0.0.1')如果IP地址无效,它将引发异常。
或者您可以使用
socket(源):
import sockettry: socket.inet_aton(addr) # legalexcept socket.error: # Not legal
如果您确实只想将IPv4与4个小数部分匹配,则可以对点进行分割并测试每个部分是否为0到255之间的整数。
def validate_ip(s): a = s.split('.') if len(a) != 4: return False for x in a: if not x.isdigit(): return False i = int(x) if i < 0 or i > 255: return False return True请注意,您的正则表达式不会执行此额外检查。它将接受
999.999.999.999为有效地址。



