容易把人弄糊涂的VBS RegExp语法
在VBS 的RegExp语法里,其对子表达式的引用与其他语言略有不同。即在使用objReg.Replace时,第一个括号内容的反向引用是$1,而在SubMatchs集合中,对此第一个括号内容的引用的序号是0;同时,这两者均没有对整个原字符串的引用,这点最容易与其他语言中的概念引起混淆。例如:
str=”This is a testing string created at 2008-10-01 20:30.”
假定
oRegExp.Pattern=”\d{4}\-(\d{2}\-\d{2}) (\d{2}:\d{2})”
那么,在oRegExp.Replace(str, “The date is $1″)中,此$1代表的是”10-01″ ,而$0在这里并不表示一个反向引用。
而在 SubMatchs集合中,SubMatchs(0)=”10-01″, SubMatchs(1)=”20:30″;
如果要获得完整匹配整个表达式的字串”2008-10-01 20:30″,我们只能使用Match对象的Value属性 oMatch.Value