diandiand163 发表于 2013-11-6 22:03:24

为什么正则取不值时,程序不会往下继续运行?【已解决】

本帖最后由 diandiand163 于 2014-4-15 09:52 编辑

如;
$a="wasdfsadfasdfjklasjdglkjassdfsdfasdfasdfasdfagfgfhghgsh"
$b=StringRegExp($a,'eee(.*)eee',3)

MsgBox (0,"",$b)
MsgBox (0,"","执行这句")

为什么正则取不值时,程序不会往下继续运行?怎么才可以让程序在取不值的情况下继续执行下一句.
MsgBox (0,"","执行这句")

duxing47 发表于 2013-11-6 23:16:46

因为不取值时候 $b不是个数组
MsgBox (0,"",$b)
所以$b取值是非法的或者说不能这么干

所以要检查正则的返回值 在返回值为0的时候(帮助里说了返回 0 就代表 有效数组.)
也是就是返回0的时候$b=StringRegExp($a,'eee(.*)eee',3)这行 就成功的 让$b成为了1个数组变量

所以判断返回值
$a="wasdfsadfasdfjklasjdglkjassdfsdfasdfasdfasdfagfgfhghgsh"
$b=StringRegExp($a,'eee(.*)eee',3)
If (@error = 0) Then          ; 这里加了个判断语句 判断StringRegExp执行后 放到 @error 的返回值
MsgBox (0,"",$b)          ;如果@error = 0那么就可以用$b来取出第一组数据
Else
MsgBox (0,"","执行这句")    ;如果非0 就执行这句 就可以避免错误的产生
EndIf

afan 发表于 2013-11-6 23:17:58

If Not @Error Then MsgBox (0,"",$b)

user3000 发表于 2013-11-6 23:28:58

楼主又学别人偷懒不翻看帮助了!
坏习惯啊!
页: [1]
查看完整版本: 为什么正则取不值时,程序不会往下继续运行?【已解决】