正则匹配思路
个人理解: 用一种描述性的语言定义一个规则,去匹配需要匹配到的字符串的子串
匹配ip地址的思路
维度切分
要匹配 0.0.0.0-255.255.255.255,可以先匹配 0-255,这一个区间,然后向ip去扩展.
要匹配 0-255,不能直接去匹配255,正则本来就是一个规则,255这个数字不是很规则,因为数字是从0-9,直接去匹配符合小于255的数字显然是不太切合实际的,可以再做维度切分.
可以把255切分成几层。
举例
举个例子,不一定要按这个来
255拆分成
0-9
10-99
100-199
200-249
250-255
然后对应的正则就是
1 | [0-9] //对应0-9 |
然后拼接这个正则表达式
1 | (25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9]) |
匹配0-255加.
1 | (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.) |
然后组装IP匹配的正则
1 | /^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$/im |
齐活