regexp对象的用法:
复制代码 代码如下:
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 & "match found at position "
retstr = retstr & match.firstindex & ". match value is '"
retstr = retstr & match.value & "'." & vbcrlf
next
regexptest = retstr
end function
msgbox(regexptest("is.", "is1 is2 is3 is4"))
regexp 对象的属性
◎ global属性
global属性设置或返回一个 boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。
语法
object.global [= true | false ]
object 参数总是 regexp 对象。如果搜索应用于整个字符串,global 属性的值为 true,否则其值为 false。默认的设置为 true。
global 属性的用法(改变赋予 global 属性的值并观察其效果):
复制代码 代码如下:
function regexptest(patrn, strng)
dim regex ' 建立变量。
set regex = new regexp ' 建立规范表达式。
regex.pattern = patrn ' 设置模式。
regex.ignorecase = true ' 设置是否区分字母的大小写。
regex.global = true ' 设置全程性质。
regexptest = regex.execute(strng) ' 执行搜索。
end function
msgbox(regexptest("is.", "is1 is2 is3 is4"))
◎ ignorecase属性
ignorecase属性设置或返回一个boolean值,指明模式搜索是否区分大小写。
语法
object.ignorecase [= true | false ]
object 参数总是一个 regexp 对象。如果搜索是区分大小写的,则 ignorecase 属性为 false;否则为 true。缺省值为 true。
ignorecase 属性的用法(改变赋予 ignorecase 属性的值以观察其效果):
复制代码 代码如下:
function regexptest(patrn, strng)
dim regex ' 建立变量。
set regex = new regexp ' 建立正则表达式。
regex.pattern = patrn ' 设置模式。
regex.ignorecase = true ' 设置是否区分大小写。
regexptest = regex.execute(strng) ' 执行搜索。
end function
msgbox(regexptest("is.", "is1 is2 is3 is4"))
pattern 属性的用法:
复制代码 代码如下:
function regexptest(patrn, strng)
dim regex ' 建立变量。
set regex = new regexp ' 建立正则表达式。
regex.pattern = patrn ' 设置模式。
regex.ignorecase = true ' 设置是否区分大小写。
regexptest = regex.execute(strng) ' 执行搜索。
end functionmsgbox(regexptest("is.", "is1 is2 is3 is4"))
◎ replace方法
replace方法替换在正则表达式查找中找到的文本。
语法
object.replace(string1, string2)
语法部分描述
object 必需的。总是一个 regexp 对象的名称。
string1 必需的。string1 是将要进行文本替换的字符串。
string2 必需的。 string2 是替换文本字符串。
说明
被替换的文本的实际模式是通过 regexp 对象的 pattern 属性设置的。
replace 方法返回 string1 的副本,其中的 regexp.pattern 文本已经被替换为 string2。如果没有找到匹配的文本,将返回原来的 string1 的副本。
eplace 方法的用法:
复制代码 代码如下:
function replacetest(patrn, replstr)
dim regex, str1 ' 建立变量。
str1 = "the quick brown fox jumped over the lazy dog."
set regex = new regexp ' 建立正则表达式。
regex.pattern = patrn ' 设置模式。
regex.ignorecase = true ' 设置是否区分大小写。
replacetest = regex.replace(str1, replstr) ' 作替换。
end function
msgbox(replacetest("fox", "cat"))
' 将 'fox' 替换为 'cat'。
;另外,replace 方法在模式中替换 subexpressions 。 下面对以前示例中函数的调用,替换了原字符串中的所有字对:
msgbox(replacetext("(s+)(s+)(s+)", "$3$2$1")) ' swap pairs of words.
◎ test方法
test方法对指定的字符串执行一个正则表达式搜索,并返回一个 boolean 值指示是否找到匹配的模式。
语法
object.test(string)
语法部分描述
object 必需的。总是一个 regexp 对象的名称。
string 必需的。要执行正则表达式搜索的文本字符串。
说明
正则表达式搜索的实际模式是通过regexp对象的pattern属性来设置的。regexp.global属性对test方法没有影响。
如果找到了匹配的模式,test方法返回true;否则返回false。
复制代码 代码如下:
test 方法的用法:
function regexptest(patrn, strng)
dim regex, retval ' 建立变量。
set regex = new regexp ' 建立正则表达式。
regex.pattern = patrn ' 设置模式。
regex.ignorecase = false ' 设置是否区分大小写。
retval = regex.test(strng) ' 执行搜索测试。
if retval then
regexptest = "找到一个或多个匹配。"
else
regexptest = "未找到匹配。"
end if
end function
msgbox(regexptest("is.", "is1 is2 is3 is4"))