写出ip地址的正则表达式的思路
首先,我们先分析一下ip地址的一些基本情况,如下 1、1到3位 先写出满足这样的一个数 一位 [1-9] 用了[]、d、{}三种符号 很明显,以上都是或的关系 接着,我们将他组合起来,那么满足ip要求的一个数就是 这里引入了|、()两个符号 前3个还有一点 这.是一个转义,代表了字符. 在加上最有一个数就是 写出以上正则后,测试了一下 于是我们将位数多匹配放到前面去,让他先找位数多的匹配,于是变成如下 再测一下,发现1131.111.111.111也能匹配为131.111.111.111,于是我们我们需要给他规定一下单词边界,查一查正则的文档,用b可以办到,变成如下 (((b2[0-4]db)|(b25[0-5]b)|(b1d{2}b)|(b[1-9]db)|b[1-9])b.){3}(b(2[0-4]db)|(b25[0-5]b)|(b1d{2}b)|(b[1-9]db)|b[1-9]b) 这样就没有什么问题了 就这样了,写正则思路最重要,合理的进行情形分解,不断完善 以上实际已经能满足我的需求了,更严格一点,111.11.111.111.,在最后带一点的字符串也能匹配出来,我们不想他匹配,因此要对文本边界做限制,查看文档,$可以办到 于是在最后加上$即可 (((b2[0-4]db)|(b25[0-5]b)|(b1d{2}b)|(b[1-9]db)|b[1-9])b.){3}(b(2[0-4]db)|(b25[0-5]b)|(b1d{2}b)|(b[1-9]db)|b[1-9]b)$ 同理。 .11.111.111.11 这样前面有边界符的还能匹配,这个我们该怎么改呢 :-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |