1、RegExp 这是使用正则表达式匹配模式的主要对象了
属性:
Pattern:一个字符串,用来定义正则表达式<匹配规则>。
IgnoreCase:如果True,则忽略英文字母大小的匹配,False对大小写进行匹配。
Global:设置True则必须匹配整个<匹配规则>,设置False只匹配第一个<匹配规则>。
MultiLine:设置True则在多行中搜索。设置False则在换行时停止。
方法:
Execute:返回一个MatchCollection对象,该对象包含每个成功匹配的Match对象。
Replace:返回一个将符合<匹配规则>的字符串替换为指定字符串。
Test:返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。
2、MatchCollection 是集合对象,该对象包含每个成功匹配的Match对象。
属性:
Count:匹配对象的总数。
Item:匹配对象的索引。
3、Match 是成功匹配的对象。
属性:
FirstIndex:匹配对象所匹配字符串的起始位置。
Length:匹配对象所匹配字符串的字符长度。
SubMatches:匹配对象所匹配结果的子项。也就是<匹配规则>中下一个匹配项“一般一个()代表一个匹配项”
Value:匹配对象所匹配的值。
第二、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。欢迎致电!" Setmhs = re.Execute(inpStr) |