vbscript中用正則時獲得匹配串的心得

來源:互聯網
上載者:User
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



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。