对经常需要用到文本数据查找、字符串比较匹配从而判断结果的时候就需要使用正则表达式。正则表达式提供了强大、灵活而又高效的方法来处理文本,利用正则表达式的全面模式匹配表达法,可以快速分析大量文本,从而找到特定的字符。在VBS中,使用RegExp对象来支持正则表达式的使用。RegExp提供了3个属性和3个方法,分别为:
- 属性:Pattern、Global、IgnoreCase;
- 方法:Test、Replace、Execute;
Ø 属性:
Pattern 该属性用于描述正则表达式的匹配模式,如用“+”来匹配前面的表达式一次或多次,用“.”来匹配除换行符\n以外的任何单字符。
Global 该属性用于设置搜索过程中是仅匹配第一个还是全部匹配,
=True时为全部匹配,
=False时则仅匹配一个;
IgnoreCase 该属性用于设置匹配字符串时是否区分大小写,
=True时不区分,
=False时区分大小写;
Ø 方法:
Test 该方法用于对指定的字符串执行一个正则表达式的搜索,返回一个布尔值,表示是否找到匹配的模式;
Replace 该方法用于替换在正则表达式中查找到的文本;
Execute 该方法用于对制定的字符串执行正则表达式的搜索。Execute方法返回一个matches 的集合,其中包含了在制定的字符串中找到的每一个匹配项。
示例:
Function RegExpTest(patrn,strng)
Dim regEx,Match,Matches
Set regEx = New RegExp ‘创建一个正则表达式
regEx.Pattern = patrn ‘设置正则表达式的匹配模式
regEx.IgnoreCase = True ‘设置为不区分大小写
regEx.Global = True ‘设置为全局可用
Set Matches = regEx.Execute(strng) ‘执行搜索
For Each Match in Matches ‘遍历所有的匹配
RetStr = RetStr &”在”
RetStr = RetStr & Match.FirstIndex & “找到匹配项。匹配项的值为”
RetStr = RetStr & Match.value & “。”&vbCRLF
Next
RegExpTest = RetStr
‘如果正则表达式匹配成功,则替换匹配项的字符串
If RegEx.Test(Strng) = True Then
MsgBox regEx.Peplace(strng,”ABC”)
End if
End Function
MsgBox(RegExpTest(“is.”,IS1 is2 IS3 is4)) ‘调用RegExpTest