我一直在尝试为 IPv4验证获得一个高效的正则表达式,但运气不佳。我似乎一度用过 (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}
,但它产生了一些奇怪的结果:
$ grep --version
grep (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.1
192.168.1.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255
192.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.2555
192.168.1.2555
我做了一个搜索,看看这是否已被问及和回答,但其他答案似乎只是显示如何确定4组1-3个数字,或不适合我。