QTP脚本中使用正则表达式,匹配字符串方法

发表于:2009-7-13 14:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing会员    来源:51Testing博客转载

分享:

  第二、RegExp对象的Test方法:测试字符串是否符合匹配规则。

FunctionRTest(s, p)
    Setre =NewRegExp
     re.IgnoreCase =False '设置是否忽略大小写
     re.Pattern = p
     RTest= re.Test(s)
End Function

  一般我们在QTP中使用正则表达式来匹配字符串的话,会编写如上面那样的一个函数。使用方法如下:

  s = “我的邮箱: test@163.com 。欢迎致电!"'用来匹配的字符串,也就是实际上我们要测试的内容

  '检查测试字符串中是否包含数字

  p = “\d+” ’测试是否包含数字的匹配规则

  MsgBoxRTest(s, p)

  '检查测试字符串是否全是由数字组成:

  p = “^\d+$”

  MsgBoxRTest(s, p)

  '检查测试字符串是否有大写字母:

  p = “[A-Z]+”

  MsgBoxRTest(s, p)

  第三、RegExp的Replace方法:把测试字符串中符合匹配规则的字符串替换为指定内容

FunctionStrReplace(s, p, r)
    Setre =NewRegExp
     re.IgnoreCase =True'设置忽略大小写
     re.Global =True '设置必须匹配整个规则
     re.Pattern = p
     StrReplace = re.Replace(s, r)
End Function

  上面的就是一般情况下使用这个方法所需要编写的一个函数,下面的就是如何使用

  ‘以下是如何使用这个方法替换邮箱地址

     s = "我的E-mail: Test@163.com 。欢迎致电!"
     p = "\w+@\w+\.(com|cn|net)"
     r = "E_Mail@sohu.net"
     s = StrReplace(s, p, r)
    MsgBox s
    '结果:我的E-mail: E_Mail@sohu.net 。欢迎致电!

  第四、Match的SubMatches属性:下一个匹配项的匹配内容

  仔细看下面这段代码的含义...

    inpStr = "我的E-mail: lucky@163.com 。欢迎致电!"
    Setre =NewRegExp
    re.Pattern = "(\w+)@(\w+).(\w+)" '注意!这个匹配规则有3个(),一个()代表一个匹配项

    Setmhs = re.Execute(inpStr)
    Setmh = mhs(0)            '根据上面的匹配规则可以计算出只有一个匹配结果
   
    MsgBox "电子邮件地址是:"&mh.Value      '这里是匹配的内容
    MsgBox "用户名是:"&mh.SubMatches(0)  '第一个括号<匹配项>中的内容
    MsgBox "邮箱是:"&mh.SubMatches(1)  '第二个括号<匹配项>中的内容
    MsgBox "域名是:"&mh.SubMatches(2)  '第三个括号<匹配项>中的内容

22/2<12
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • onlonely
    2009-7-22 13:52:26

    这不是我的日志吗,怎么出现在这里了

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号