找回密码
 加入
搜索
查看: 3133|回复: 7

[AU3基础] IP地址理解表达式

  [复制链接]
发表于 2010-4-12 10:22:33 | 显示全部楼层 |阅读模式
本帖最后由 online041 于 2010-4-13 01:49 编辑

各位版主高手们您好
本人是个新手刚刚看了个表发方式30分就是想问一下这代码可以这么理解吗
(2[0-4]\d|25[0-5]|[01]?\d\d?)
我的理解就是把这段源码分成三段这样对吗
25[0-5] 250-255 之间
2[0-4] 200-249之间
[01]?\d\d? 1-199之间
意思就是说
(2[0-4]\d|25[0-5]|[01]?\d\d?)
是一个是一个数不过1-255中分三个阶段

整个代码
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
如果错的可以告诉我应该怎么理解这段代码
发表于 2010-4-12 10:59:01 | 显示全部楼层
我就根本没理解过来。

发表于 2010-4-12 10:59:31 | 显示全部楼层
还有这种方式格式IP地址的啊?
不明白,关注。
发表于 2010-4-12 12:40:44 | 显示全部楼层
各位版主高手们您好
本人是个新手刚刚看了个表发方式30分就是想问一下这代码可以这么理解吗
(2[0-4]\d|25 ...
online041 发表于 2010-4-12 10:22



    除了 25[0-] 250-250 之间 这句(笔误?),应该是25[0-5] 250-255之间。其它的都ok
 楼主| 发表于 2010-4-13 01:47:20 | 显示全部楼层
不好意思(笔误) 因为想了半天没想明白
 楼主| 发表于 2010-4-13 22:55:57 | 显示全部楼层
走马观花
发表于 2010-4-14 06:51:32 | 显示全部楼层
我习惯的写法:
^((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$

我把它拆开来理解:
^和$ 匹配字符串开始位和结束位
25[0-5] 匹配250-255。[]内部是字符集,表示字符集内的任一位,下同。0-5即数字0-5范围。
2[0-4]\d 匹配200-249。\d匹配一位数字,下同。
[01]?\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金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-4-14 16:16:49 | 显示全部楼层
终于清楚点了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 14:44 , Processed in 0.075630 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表