lsq726 发表于 2009-6-13 11:32:13

正则中的 $ 求解

本帖最后由 lsq726 于 2009-6-13 14:06 编辑

在论坛 看到 一贴:
http://www.autoitx.com/forum.php?mod=viewthread&tid=4497&highlight=%D5%FD%D4%F2

SANHEN兄给出的答案:$var="http://dl_dir.qq.com/qqfile/qq/QQ2008IIFkbcqdy/QQ2008IIBeta1SP1.exe"
$var=StringRegExp($var,"^(?i)http://.*/(.*)$",3)

MsgBox(0,0,$var)还有liongodmien 兄出的答案:$Exe = StringRegExp('http://dl_dir.qq.com/qqfile/qq/QQ2008IIFkbcqdy/QQ2008IIBeta1SP1.exe', '[^/]+$', 1, 1)
MsgBox(0,0, $Exe)正则中都有 个$字符代表什么意思?
还有这2个正则 能注解一下 就更好了..{:2_75:}

kn007 发表于 2009-6-13 11:50:53

$XXX意思是 XXX变量

$理解为变量

kn007 发表于 2009-6-13 11:51:08

至于正则,得等高手来解释

kn007 发表于 2009-6-13 11:52:12

走人吃饭!

78391493 发表于 2009-6-13 13:44:18

$=字符串结尾

lsq726 发表于 2009-6-13 14:06:29

$=字符串结尾
78391493 发表于 2009-6-13 13:44 http://www.autoitx.com/images/common/back.gif


明白了谢谢。。

lynfr8 发表于 2009-6-13 16:33:43

正则是个好东西,闲着也是闲着,注解分析一下吧:

目标字符串:
'http://dl_dir.qq.com/qqfile/qq/QQ2008IIFkbcqdy/QQ2008IIBeta1SP1.exe'

分析第一个表达式:^(?i)http://.*/(.*)$
首先要了解几个含义:
. 匹配除 "\n" 之外的任何单个字符
* 重复零次或更多次
^ 匹配字符串的开始位置
$ 匹配字符串的结束位置
( ) 在这里是表示你最终所需要得到字符段,也就是匹配的结果
如果单纯是判断这一句的话
其实第一个表达式可以不要^(?i)http:
写成://.*/(.*)$就ok了

分析第二个表达式:[^/]+$
+ 重复一次或更多次
[ ] 包含一系列字符,能够匹配其中任意一个字符
[^/] 包含一系列字符,则能够匹配/之外的任意一个字符,也就是把/排除掉
$就是取所有匹配[^/]+的最后一个
如果改成[^/]+你会发现他匹配结果就是
0/5"http:"
1/5"dl_dir.qq.com"
2/5"qqfile"
3/5"qq"
4/5"QQ2008IIFkbcqdy"
5/5"QQ2008IIBeta1SP1.exe"
如果改成^[^/]+你会发现他匹配结果就是
0/0"http:"
也就是匹配[^/]+的第一个

说得有点糊里糊涂,正则是个比较抽象的表达方式
有时候只可意会不可言传
需要自己去测试几次慢慢理解

kn007 发表于 2009-6-13 16:34:43

学习楼上的,正则,。。。我
页: [1]
查看完整版本: 正则中的 $ 求解