51Testing软件测试论坛

标题: 关于正则表达式的书写 [打印本页]

作者: hiyizhiyu    时间: 2006-9-19 10:00
标题: 关于正则表达式的书写
在做java程序的脚本的时候
程序会出现多个页面,都通过其label属性的值来标识,这些页面的label属性的值虽然都不相同
但都是以固定的子字符串开头的,比如abc...
所以想把label属性的值用正则表达式来表示,可以统一的来标识这些页面
按手册上说的好像是在把content的值写成^abc就可以了
但我这些修改后就不能标识到这些页面了
我想可能是正则表达式的书写有问题
一时还没有找到解决办法
希望哪位前辈指点一下
thanks
作者: hiyizhiyu    时间: 2006-9-19 11:22
么有人过来帮忙啊
自己顶一下
在线等
作者: kissing    时间: 2006-9-19 11:30
- -^abc没错,怎则表达式是用来做限制的。。你如何来标示的?我不太懂。。。
作者: walker1020    时间: 2006-9-19 11:38
在[QuickTestPro 精华区] 里 有正则表达式方面的资料,你可以到[QuickTestPro 精华区] 下载下来仔细研究如何使用它。你还可以以“正则表达式”为关键词在本论坛上搜索,肯定能搜到不少关于正则表达式的帖子。
提示一点:在对象库里,你要把对象的content 值手工改成^abc, 如果这个正则表达式没有错的话。
作者: hiyizhiyu    时间: 2006-9-19 13:07
TO 3楼的朋友,因为程序中可能出现多个label值是以abc开头的窗体,因为abc后面的字符串不能唯一确定,所以我希望能通过正则表达式来实现统一的标识,比如以前标识其中一个窗体,是通过其label的值abcdefg,那么我现在把其label 的content改为^abc是不是也应该可以标识到这个窗体呢,我理解的是^abc可以代替abcdefg来标识这个窗体,正则表达式所指的匹配不是这个意思吗?也许是我理解错了
to worker1020,我是手动改的,而且正则表达式应该也没有写错,按照手册上来的,但我也不敢肯定语法,没有找到实例,我再找找吧
谢谢
作者: skyzhu    时间: 2006-9-19 13:34
abc...这是一个字符串吗?中间有没有空格或者其他符号
没有的话应该是对的
你试试   abc/w*
作者: hiyizhiyu    时间: 2006-9-19 14:46
to 楼上的朋友
abc...是一个字符串
我换了种方式可以实现了
abc.*
用这个就可以统一标识所有这样的窗体了
thanks
作者: lyscser    时间: 2006-9-19 15:19
就是楼上那个意思
参数表里3行参数可以代表200行
方便输入
作者: 梦醒十分    时间: 2006-9-19 18:13
如果非常想用^
上面的情况可以写成:
^abc.*
^abc.*$
我想^abc只是代表abc,因为它后面没有变数。
作者: lyscser    时间: 2006-9-20 13:03
大大来帮你:
        正则表达式应用模板
进行日期YYYY-MM-DD的格式检查 :
Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches      ' Create variable.
  Set regEx = New RegExp         ' Create a regular expression.
  regEx.Pattern = patrn         ' Set pattern.
  regEx.IgnoreCase = True         ' Set case insensitivity.
  regEx.Global = True         ' Set global applicability.
  Set Matches = regEx.Execute(strng)   ' Execute search.
  For Each Match in Matches      ' Iterate Matches collection.
    RetStr = RetStr & "Match found at position "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function
date_pattern="^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$"
result_message=RegExpTest(date_pattern, inputbox("请你输入要检查的时间:"))'用其它正则表达式更改此处
Select case result_message
Case ""
         msgbox("你输入的日期格式与标准不匹配")
case else  MsgBox(result_message)
end select
作者: yhzmw    时间: 2007-5-16 21:20
楼上的不知道在那里拷贝的代码?能否解释一下?
我自己运行这段代码,不论输入什么样的日期格式,都弹出提示对话框:你输入的日期格式与标准不匹配




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