51Testing软件测试论坛

标题: 正则表达式 [打印本页]

作者: xp20683    时间: 2006-11-17 09:01
标题: 正则表达式
使用正则表达式来表示0到1200,我想的答案是[0-9][0-9][0-9]|1[]01[0-9][0-9]|1200,资料答案是[0-9]?[0-9]?[0-9]?|1[]01[0-9][0-9]|1200,我觉得两个答案都只正确的,因为?是前面字符的零次或一次匹配,[0-9] 是匹配这个范围内的任意单个数字,由于是数字不是字符,0就相当于?匹配0次,所以两种答案都是正确的,我想是这样的,不知道对不对?请可位高手指点.
作者: xiaonan    时间: 2006-11-17 09:05
呵呵,你认为正确的,就去实际操作一下啊,这样来的更加直观
作者: xp20683    时间: 2006-11-17 09:50
我现在试了一下.
  假设信用卡号范围设置在0到1200中才是有效的.
  我将定票系统中的信用卡号设置成检查点,检查点属性value设置成[0-9]?[0-9]?[0-9]?|1[01][0-9][0-9]|1200正则表达式,其真正的属性值为1000,不知道为什么?运行的时候就出错了.
  出错信息显示期望值为][0-9]?[0-9]?[0-9]?|1[01][0-9][0-9]|1200,而实际值为1000.难道1000不匹配上面的正则表达式
作者: du宝宝    时间: 2006-12-4 09:38
sdlkfj4
作者: 风过无息    时间: 2006-12-13 09:39
加个括号吧:([0-9]?[0-9]?[0-9]?)|1[01][0-9][0-9]|1200
一般情况下规范一点的写法:([0-9]?[0-9]?[0-9]?)|(1[01][0-9][0-9])|1200
不过建议:[0-9]?[0-9]?[0-9]?能不能改为:[0-9]?[0-9]?[0-9],这样空值的话也可以避免。
仅为个人观点。

[ 本帖最后由 风过无息 于 2006-12-13 18:34 编辑 ]




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2