For i = 0 To UBound(arrRS, 2)
For i = 0 To UBound(arrBadWords)
For i = 0 To ubound(arrRegular)-1
这三行的循环终值最好用变量代之,否则每循环一次都需要对表达式求值,很慢。
关过BadWords和其类似的词查找我作了一下效率测试。
关键代码如下:
'bArray是关键词数组,str是进行查找的字串,假定为全部未找到,这样可以使循环最大化。
For k = 0 To 100000
For Each i In bArray
If Instr(1, str, i) > 0 Then
'....................
End If
Next
Next
最终用时1.171875
rstr = "f|d|c|dd|asdf|affe"
set regex = new Regexp
ts = timer
for k = 0 To 100000
regex.Test s
next
te = timer
最终用时0.4375,还是正则快!