vbscript|心得|正則
vbscript中用正則比在javascript中麻煩一些。javascript中不用建立RegExp對象就可以用正則,但是在vb中就不可以。還有javascript中可以利用RegExp.$1獲得模式比對,但是vb中就不行。需要用到另外一個對象和一個個集合:MatchCollection,Match
舉一個例子如下:
假設有一個有這樣一個串
strNor=";northsnow:塞北的雪;csdn:中國最大的開發人員網路;crc:長春軌道客車股份有限公司;"
串中包含了很多子串,子串是用;(分號)分割開的,每個子串也分兩個部分,前一部分為標識或英文名,後一個部分為中文名或說明。根據給定的標識尋找後面的說明怎麼做呢?這就是我們這個例子將要解決的問題:
代碼如下:
dim oStr
oStr=";northsnow:塞北的雪;csdn:中國最大的開發人員網路;crc:長春軌道客車股份有限公司;"
function getName(ooID)
dim objRegExp ,reMatchCol,reMatch,reSubMatch
dim rValue
Set objRegExp=new RegExp
objRegExp.Pattern=";(" & ooID & "):([^;]*)"
objRegExp.IgnoreCase=true
objRegExp.Global=true
set reMatchCol= objRegExp.execute(oStr) '執行查詢,並返回匹配到一個匹配集合中
if reMatchCol.count>0 then
Set reMatch = reMatchCol(0) '將第一匹配串放到一個匹配對象中
Set reSubMatch = reMatch.SubMatches '返回子匹配集合
if reSubMatch(0)=ooID then
rValue=reSubMatch(1)
else
rValue=""
end if
else
rValue=""
end if
getName=rValue
end function
response.Write getName("northsnow")
感謝您閱讀此文章,有意見或建議請參與評論,或email 作者,作者郵箱:northsnow@163.com