ip:xxx.xxx.xxx.xxx
xxx的范围:0-255(可能有1位,2位或者3位)
xxx的各种情况:\b都表示边界
- 只有1个数字:\d\b
分析:只有一个数字,范围是0-9,可以用[0-9]或者\d来表示
- 只有2个数字:[1-9]\d\b
分析:只有2个数字,十位上的数字不能是0,范围是1-9;个位上的数字范围是0-9
- 只有3个数字:1\d\d\b|2[0-4]\d\b|25[0-5]\b
分析:(1)如果百位上的数字是1,则十位和个位上的数字范围是0-9;(2)如果百位上的数字是2并且十位上的数字范围是0-4,则个位上的数字是0-9;(3)如果百位上的数字是2并且十位上的数字是5,则个位上的数字是0-5(因为最大为255)
根据以上结果得出xxx的各种情况:\d\b|[1-9]\d\b|1\d\d\b|2[0-4]\d\b|25[0-5]\b
ip里面可以拆成3个xxx.和1个xxx,所以ip可以写成如下方式:
((\d\b|[1-9]\d\b|1\d\d\b|2[0-4]\d\b|25[0-5]\b)\.){3}(\d\b|[1-9]\d\b|1\d\d\b|2[0-4]\d\b|25[0-5]\b)
注意:.点表示可以匹配除了\n的任何字符,在点前面加上\(即\.),则表示只能匹配点