vbscript中用正则时获得匹配串的心得

王朝vb·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航