51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2479|回复: 3
打印 上一主题 下一主题

[原创] QTP中郁闷的一则正则表达式

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-1-8 19:20:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天,遇到一个很意思的问题,关于正则表达式在QTP的用法:

环境TP8.2
被测对象:是QTP自带的单机版的例子,详见下图


对此对象设置了一个标准检查点,则检查点的值设成正则表达式,如图所示:


内容0[1-9])|(1[0-2])/(0[1-9])|([1-2][0-9])|(3[0-1])/09
匹配:01/10/09(即月/日/年)这样的格式的字符串
QTP结果:检查点失败.

如果改成这样的话,如下图,就可以检查通过.


请教:使用QTP的同行,这是为什么?按照正则表达式的用法,也没有写错啊.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-1-8 23:29:38 | 只看该作者
你用((0[1-9])|(1[0-2]))/((0[1-9])|([1-2][0-9])|(3[0-1]))/09 试试, 我用()把月份和日期括起来了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-1-9 16:48:44 | 只看该作者
谢谢,可以了,原来还要再加一层括号.
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-1-9 17:47:25 | 只看该作者
在使用或的时候,要注意边界
(0[1-9])|(1[0-2])/(0[1-9])|([1-2][0-9])|(3[0-1])/09
这个表达式是这样的
0[1-9]或者1[0-2]/0[1-9]或者[1-2][0-9]或者3[0-1]/09
匹配结果是01和10/09,要匹配01/10/09显然是错误的
更简洁的表达式是:
(0[1-9]|1[0-2])/(0[1-9]|[1-2][0-9]|3[0-1])/09
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-12 16:55 , Processed in 0.074222 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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