frankzh 发表于 2014-3-23 22:45:33

关于一个正则使用是否还可以优化的问题

我是autoit和正则的双初学者,写了个小程序,练习下。有了点小疑问,希望能得到前辈的指点,不胜感激。
小程序的功能是分别提取一个变量中的两个数字。
Global $fanwei = "12#~120#"
$asresult = StringRegExp($fanwei,'({1,3})(?:#~)',1)
$asresult1 = StringRegExp($fanwei,'(?:~)({1,3})(?:#)',1)
If @error == 0 Then
   msgbox(0,"结果",$asresult&","&$asresult1)
EndIf
上面这段可以实现,但是我不确定它是不是还可以简化,因为用正则本身就是有简化代码的好处的。
再次感谢

haijie1223 发表于 2014-3-23 22:49:50

回复 1# frankzh


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

frankzh 发表于 2014-3-23 23:00:05

回复 2# haijie1223


   非常感谢您,果然可以而且超级简便,不过我注意到您用的sre的参数是3,我去查查看在理解下,其实我想进一步解决的形如12+1#~120+2#这样的字符串中的数字都提取出来,不过好像简单套用您的方法,不行,还是我没有理解您的用法,或者说是sre不同参数的用法,很感谢您的指点

frankzh 发表于 2014-3-23 23:25:21

我试过了,只要依样画葫芦就可以了,谢谢了,我太笨了,刚才可能那里弄错了。哈哈
$fanwei = "12-1#~120-1#"
$asresult = StringRegExp($fanwei,'(\d+)',3)
If Not @error Thenmsgbox(0,"结果",$asresult&","&$asresult&","&$asresult&","&$asresult)
页: [1]
查看完整版本: 关于一个正则使用是否还可以优化的问题