我认为IP只能在0.0.0.0到255.255.255.255之间。我看到了很多复杂的regex答案来匹配和验证堆栈溢出上的IP地址。告诉我我的怎么了。
ip = re.compile(r'[0-2]*[0-5]*[0-5]*.[0-2]*[0-5]*[0-5]*.[0-2]*[0-5]*[0-5]*.[0-2]*[0-5]*[0-5]*')
它有效。
我完全理解你为什么使用[0-2]*[0-5]*[0-5]*
,我相信我也犯过类似的错误。这里的问题是它只能匹配000-055、100-155、200-255。你需要的代码应该是这样的:
(?:(?:[01]*[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5]))
对于每个三位数的序列。
本质上,您是在告诉regex输入应该具有以下任一项:
- 从0到199的任何数字,由
[01][0-9][0-9]
给出 - 或
2[0-4][0-9]
给出的从200到249的任何数字 - 或
25[0-5]
给出的250到255之间的任何数字