在正则表达式中,可以用小括号将一些规则括起来当作分组,分组可以作为一个元字符来看待。
分组的例子,验证 IP 地址:
(\d{1,3}\.){3}\d{1,3}
这是一个简单的且不完善的匹配 IP 地址的正则表达式,因为它除了能匹配正确的 IP 地址外,还能匹配如 322.197.578.888 这种不存在的 IP 地址。
当然,用这个表达式简单匹配成功后可以在利用 PHP 的算术比较再加以判断 IP 地址是否正确。而正则表达式中没有提供算术比较功能,如果要完全匹配正确的 IP 地址,则需要改进如下:
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
规则说明
该规则关键之处在于确定 IP 地址每一段范围为 0-255 ,然后再重复 4 次即可。在:
25[0-5]|2[0-4]\d|[01]?\d\d?
中,用分枝首先确定了 250-255 和 200-249 。 [01]?\d\d? 则确定了 0-199 的范围,综合起来就是 0-255 。
原文链接:https://www.f2er.com/regex/358543.html