(二十一)正则表达式

一、元字符
(1).匹配除了换行符以外的任意一个字符
(2)\w 匹配任意一个字母、数字、下划线
(3)\s 匹配任意一个空白符(空格、Tab空格、换行符)
(4)\d 匹配的任意一个数字
(5)\b 匹配单词的开始和结束的位置
(6)^ 匹配字符串的开始位置
(7)$ 匹配字符串的结束位置

容易混淆的是:
①\bhi\b检索的是字符串中的单词
比如:”hi,Did you see him?” 可以找到一个单词
②^amber$:指的是字符串就是这个amber
My name is amber.
将检索不到任何内容
③hi:检索包含这两个字符的,所以会检索出包含hi的单词

二、常用的限定符
(1)* 重复0次或多次
(2)+ 重复1次或多次
(3)?重复0次或1次
(4){n}重复n次
(5){n,}重复n次或者多次
(6){n,m}重复n次到m次

\bhi\b.*\bLucy\b:匹配的是hi附近连接的一个Lucy
例如:hi,beautiful Lucy

0\d{2}-\d{8}

^\d{5,12}$   :数字长度5到12

三、正则表达式的分组—()
被()起来的部分为子表达式,具有最高的优先级
例1:正则表达式(ab)+,可以匹配ab,abab,ababab
正则表达式ab+,可以匹配人ab,abb,abbb……
例2:匹配0-255的数字,格式可以为0,00,000,1,01,001,099

分析:①200-255:25[0-5]|2[0-4]\d
           ②100-199:1\d\d
           ③10-99:[1-9]\d
           ④00-09:0\d   ③④可以合并为:\d\d(00--99)
           ⑤000-099:0\d{2} ②⑤可以合并为:[0-1]\d\d (000-199)
           ⑥ :④⑤合并为:[0-1]?\d\d 
           ⑦0-9: 与⑥合并:[0-1]?\d\d?
 最终正则表达式:25[0-5]|2[0-4]\d|[0-1]?\d\d?

例3:匹配有效的IP地址的正则表达式,如172.166.7.32

(25[0-5]|2[0-4]\d|[0-1]?\d\d?\.){3}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)

例4:检查日期

月份,可以写01、1:1[0-2]|0?[1-9]
日期,可以写01、1:0?[1-9]|[1-2][0-9]|3[01]
(1[0-2]|0?[1-9])[-./](0?[1-9]|[1-2][0-9]|3[01])
注意/不是转义字符,[-./]只是普通字符

四、正则表达式在QTP中的应用

  • 检查点的预期结果,使用正则表达式;编辑检查点时,勾选“regular expression”
  • 对象仓库(TO)中对象的属性值,使用正则表达式,解决Test运行时,无法识别被测对象(RO)的问题

    三、练习:
    Flight系统显示订单信息,Price显示格式是否正确
    $\d+.\d{2}

五、可以自定义正则表达式

Dim regEx, retVal            ' Create variable.
  Set regEx = New RegExp         ' Create regular expression.
  regEx.Pattern = patrn         ' Set pattern.
  regEx.IgnoreCase = False      ' Set case sensitivity.
  retVal = regEx.Test(strng)      ' Execute the search test.

猜你喜欢

转载自blog.csdn.net/jiangshangchunjiezi/article/details/80673744