我一直在尝试获得一个高效的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
我搜索过,看是否已经有人问过并得到了回答,但其他答案似乎仅展示如何确定由1-3个数字组成的4组数字,或者对我没有用。