找回密码
 加入
搜索
查看: 2001|回复: 3

[AU3基础] 关于一个正则使用是否还可以优化的问题

[复制链接]
发表于 2014-3-23 22:45:33 | 显示全部楼层 |阅读模式
我是autoit和正则的双初学者,写了个小程序,练习下。有了点小疑问,希望能得到前辈的指点,不胜感激。
小程序的功能是分别提取一个变量中的两个数字。
Global $fanwei = "12#~120#"
$asresult = StringRegExp($fanwei,'([0-9]{1,3})(?:#~)',1)
$asresult1 = StringRegExp($fanwei,'(?:~)([0-9]{1,3})(?:#)',1)
If @error == 0 Then
   msgbox(0,"结果",$asresult[0]&","&$asresult1[0])
EndIf
上面这段可以实现,但是我不确定它是不是还可以简化,因为用正则本身就是有简化代码的好处的。
再次感谢
发表于 2014-3-23 22:49:50 | 显示全部楼层
回复 1# frankzh


    就题论题:
$fanwei = "12#~120#"
$asresult = StringRegExp($fanwei,'\d+',3)
If Not @error Then  msgbox(0,"结果",$asresult[0]&","&$asresult[1])

评分

参与人数 1金钱 +20 收起 理由
frankzh + 20 感谢您的回复,很精练啊

查看全部评分

 楼主| 发表于 2014-3-23 23:00:05 | 显示全部楼层
回复 2# haijie1223


   非常感谢您,果然可以而且超级简便,不过我注意到您用的sre的参数是3,我去查查看在理解下,其实我想进一步解决的形如12+1#~120+2#这样的字符串中的数字都提取出来,不过好像简单套用您的方法,不行,还是我没有理解您的用法,或者说是sre不同参数的用法,很感谢您的指点
 楼主| 发表于 2014-3-23 23:25:21 | 显示全部楼层
我试过了,只要依样画葫芦就可以了,谢谢了,我太笨了,刚才可能那里弄错了。哈哈
$fanwei = "12-1#~120-1#"
$asresult = StringRegExp($fanwei,'(\d+)',3)
If Not @error Then  msgbox(0,"结果",$asresult[0]&","&$asresult[1]&","&$asresult[2]&","&$asresult[3])
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 12:52 , Processed in 0.076615 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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