VBscript中的正则表达式

peierlsfox 2012-07-06

VBscript中的正则表达式

在VBscript中,正则表达式对象就是RegExp对象。RegExp对象有3个属性:Pattern属性,设置或返回被搜索的正则表达式模式。

Global属性,指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。

IgnoreCase属性,指明模式搜索是否区分大小写。

RegExp对象有3种方法:object.Execute(string)对指定的字符串执行正则表达式搜索。Execute方法返回一个Matches集合,其中包含了在string中找到的每一个匹配的Match对象。如果未找到匹配,Execute将返回空的Matches集合。

object.Test(string)对指定的字符串执行一次测试性搜索,只返回一个Boolean值指示是否存在匹配。

object.Replace(string1,string2)替换在正则表达式中找到的文本。搜索string1,用string2替换。返回string1被替换后的字符串。

这里object是已定义的正则表达式,string是被搜索的文本。要查找的是用Pattern描述的正则表达式模式。

例程1创建一个正则表达式,并演示替换方法。Match对象和Matches集合

只能通过RegExp对象的Execute方法来创建,该方法实际上返回了Match对象的集合Matches。所有的Match对象属性都是只读的。每个Match对象提供了被正则表达式搜索找到的匹配字符串的开始位置、长度,字符串本身等信息,通过Match对象的属性供用户访问。FirstIndex在搜索字符串中匹配的位置。

Length匹配字符串的长度。

Value找到的匹配字符串。

例程2创建一个正则表达式,执行搜索,并显示每一个匹配的结果。

FunctionRegExpTest(patrn,strng)

DimregEx,Match,Matches

SetregEx=NewRegExp

regEx.Pattern=patrn

regEx.IgnoreCase=True

regEx.Global=True

SetMatches=regEx.Execute(strng)

ForEachMatchinMatches

RetStr=RetStr&"Match"&Match&"foundatposition"

RetStr=RetStr&Match.FirstIndex&".MatchValueis"

RetStr=RetStr&Match.Value&"'."&"

"

Next

RegExpTest=RetStr

EndFunction

document.write(RegExpTest("is.","IS1is2IS3is4"))

运行例程2

两种语言正则表达式的用法对照表VBscript的RegExp对象Javascript的正则表达式

IgnoreCase属性创建语法中的开关switch="i"

Global属性创建语法中的开关switch="g"

Pattern属性创建语法中的Pattern参数

matchs对象集合属性$1-$9

Execute方法exec方法

Test方法test方法

Replace方法没有对应方法,但有字符串对象的replace方法

没有对应的方法compile方法

没有对应的属性source属性

有许多用于正则表达式模式的特殊字符,这在两种语言中是一样的。

相关推荐