使用regexp验证IPv4地址我一直试图获得有效的IPv4验证正则表达式,但没有太多运气。似乎我曾经有过它(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4},但它会产生一些奇怪的结果:$ grep --versiongrep (GNU grep) 2.7$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1192.168.1.1$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255192.168.1.255$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555192.168.1.2555我做了一个搜索,看看是否已经被问及回答,但其他答案似乎只是显示如何确定4组1-3个数字,或者不适合我。
3 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
你已经得到了一个有效的答案,但万一你好奇你的原始方法出了什么问题,答案是你需要围绕你的交替使用括号,否则(\.|$)只有在数字小于200时才需要。
'\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b'
^ ^
- 3 回答
- 0 关注
- 574 浏览
添加回答
举报
0/150
提交
取消