IP地址理解表达式
本帖最后由 online041 于 2010-4-13 01:49 编辑各位版主高手们您好
本人是个新手刚刚看了个表发方式30分就是想问一下这代码可以这么理解吗
(2\d|25|?\d\d?)
我的理解就是把这段源码分成三段这样对吗
25 250-255 之间
2 200-249之间
?\d\d? 1-199之间
意思就是说
(2\d|25|?\d\d?)
是一个是一个数不过1-255中分三个阶段
整个代码
((2\d|25|?\d\d?)\.){3}(2\d|25|?\d\d?)
如果错的可以告诉我应该怎么理解这段代码 我就根本没理解过来。
:face (9): 还有这种方式格式IP地址的啊?
不明白,关注。 各位版主高手们您好
本人是个新手刚刚看了个表发方式30分就是想问一下这代码可以这么理解吗
(2\d|25 ...
online041 发表于 2010-4-12 10:22 http://www.autoitx.com/images/common/back.gif
除了 25 250-250 之间 这句(笔误?),应该是25 250-255之间。其它的都ok 不好意思(笔误) 因为想了半天没想明白 :face (28):走马观花 我习惯的写法:
^((25|2\d|?\d?\d)\.){3}(25|2\d|?\d?\d)$
我把它拆开来理解:
^和$ 匹配字符串开始位和结束位
25 匹配250-255。[]内部是字符集,表示字符集内的任一位,下同。0-5即数字0-5范围。
2\d 匹配200-249。\d匹配一位数字,下同。
?\d?\d) 匹配 0-199。?表示前位可能重复0或1次,0次其实是不存在。
用|字符分开成3部分,整组用()括起来,表示这是一个整体,只要匹配任一部分即可。
\.就是.,因为.在正则里表示任一字符,所以.要写作\.。
{3}就是前面()里的内容重复3次。也就是匹配 0.0.0. 至 255.255.255.。
后面的内容跟前面相同,就是 0-255。
全部组合,这个表达式匹配 0.0.0.0 至 255.255.255.255,刚好是有效IP地址。
正则是很强大的,这几天比较au3新版和旧版的更改部分,在File.au3里发现下面这条,直接去掉路径尾部可能存在的\和/字符:
$sPath = StringRegExpReplace($sPath, "[\\/]+\z", "")
相比下面这种以前的写法,用正则既简洁又高效。
If StringRight($sPath, 1) = "\" OR StringRight($sPath, 1) = "/" Then $sPath = StringTrimRight($sPath, 1) 终于清楚点了
页:
[1]