找回密码
 加入
搜索
查看: 3050|回复: 5

[系统综合] StringRegExp表达式在错误的时候如果给出判断----(已解决)

[复制链接]
发表于 2010-11-22 13:19:58 | 显示全部楼层 |阅读模式
本帖最后由 zhenglei 于 2010-11-22 13:35 编辑
$name = "29.-周杰伦-烟花易冷--国语阿里山的房间"
$array = StringRegExp($name, '([^-]+)', 3)
$1 = $array[1]
$2 = $array[2]
MsgBox(0, 0, $1 & @CRLF & $2)
以上代码$1 和$2都可以显示出来。。。。。   可以正常显示..没有问题。。。
=============================================
$name="29.周杰伦烟花易冷国语阿里山的房间"
$array = StringRegExp($name, '([^-]+)', 3)
if @error=1 then msgbox(16,"提醒","数据读取错误!请查证")
else
$1 = $array[1]
$2 = $array[2]
if $1<>"" and $2<>"" then MsgBox(0, 0, $1 & @CRLF & $2)
endif
这串代码就有问题了。。 我需要在数组读取错误时给出提示!
但是代码老是写不对。。 我就郁闷。。。。。
==========================================

现在的问题。是检测$array = StringRegExp($name, '([^-]+)', 3) 表达式是否正确。。
如果正确。 接着判断数组$1 和$2  数组是否有数据。。 没有数据则提示错误信息!!!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-11-22 13:21:04 | 显示全部楼层
自己顶一下。。。。。。
发表于 2010-11-22 13:27:44 | 显示全部楼层
$name = "29.周杰伦烟花易冷国语阿里山的房间"
$array = StringRegExp($name, '([^-]+)', 3)
If UBound($array) > 2 Then
        $1 = $array[1]
        $2 = $array[2]
        MsgBox(0, 0, $1 & @CRLF & $2)
Else 
        MsgBox(0, '', '匹配失败')
EndIf        
 楼主| 发表于 2010-11-22 13:36:30 | 显示全部楼层
水木子 发表于 2010-11-22 13:27


老大。。 感谢你啊。 好神速。。。 我对正规表达式还是搞不懂。 还需要多多研究。 谢谢啊。
发表于 2010-11-22 13:37:08 | 显示全部楼层
回复 3# 水木子


    UBound($array) > 1 就可以了   计算的数量是UBound($array)-1
发表于 2010-11-22 13:38:15 | 显示全部楼层
回复 5# shenrenba
谢谢指正!可能是我大意了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 07:27 , Processed in 0.076186 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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