51Testing软件测试论坛

标题: QTP如何使用正则表达式 [打印本页]

作者: tjmjf    时间: 2009-7-10 11:14
标题: QTP如何使用正则表达式
在网上搜索了很多QTP关于正则表达式的东西,但是大多都是讲那些理论,没有实际的东西。
假设,x="abcd",y="a",z="b" 我想用正则表达式达到这样的目的:
1.验证x是不是以“a”开头;
2.验证x是不是包含“b”
最好能给个代码,希望各位不要笑我水平太低。
作者: shanxi    时间: 2009-7-10 11:17
推荐一个工具
Expresso
http://www.ultrapico.com/Expresso.htm

我C# perl都能用
作者: tjmjf    时间: 2009-7-10 11:19
LS给的网站我上不去。
QTP中经常用Execute,Preplace,Test来实现正则表达式,其中test就是类似于包含,其他两个是什么功能呢?具体怎么用呢?
希望能来点代码。不要讲理论。
作者: liujinkui    时间: 2009-7-10 11:22
关注
作者: shanxi    时间: 2009-7-10 11:22
原帖由 tjmjf 于 2009-7-10 11:19 发表
希望能来点代码。不要讲理论。


工具==理论?

这工具就是写正则用的,里面还自带了不少范例,如果你不练习怎样写正则,你如何去熟练运用?

[attach]53879[/attach]

[ 本帖最后由 shanxi 于 2009-7-10 11:27 编辑 ]
作者: tjmjf    时间: 2009-7-10 11:38
谢谢LS,我去看看这个工具。
作者: shanxi    时间: 2009-7-10 12:26
原帖由 tjmjf 于 2009-7-10 11:38 发表
谢谢LS,我去看看这个工具。


网上有不少基础的教程你应该其看,看后一般都一头雾水,所以需要多练习。

[ 本帖最后由 shanxi 于 2009-7-10 12:30 编辑 ]
作者: wolf-tree    时间: 2009-7-10 14:06
谢谢!~
作者: hsjzfling    时间: 2009-7-10 14:37
原帖由 tjmjf 于 2009-7-10 11:14 发表
在网上搜索了很多QTP关于正则表达式的东西,但是大多都是讲那些理论,没有实际的东西。
假设,x="abcd",y="a",z="b" 我想用正则表达式达到这样的目的:
1.验证x是不是以“a”开头;
2.验证x是不是包含“b”
最好 ...



QTP的帮助文档能回答你这两个问题

1. 写正则表达式

可以参见帮助文档中的HP QuickTest Professional User's Guide > Enhancing Tests > Configuring Values > Defining Regular Expressions
比如
Matching the Beginning of a Line A caret (^) instructs QuickTest to match the expression only at the start of a line, or after a newline character.
For example:
book
matches book within the lines—book, my book, and book list, while
^book
matches book only in the lines—book and book list.



2. 验证正则表达式

可以参考帮助中的这段描述和代码

Remarks
The actual pattern for the regular expression search is set using the Pattern property of the RegExp object.

The Execute method returns a Matches collection containing a Match object for each match found in string. Execute returns an empty Matches collection if no match is found.
The following code illustrates the use of the Execute method.

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
MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))





[ 本帖最后由 hsjzfling 于 2009-7-10 14:45 编辑 ]
作者: yxd2006    时间: 2011-7-12 19:59
学习了




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