搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

在VBSript中使用regular expression取得子字串

在 vbscript 5 中新增了 regular expression 功能,
但看了微軟的「vbscript 程式語言參考」後確一頭霧水,
而且不同的 build 版本還有不同的結果, 真是 #%^&!@%&!....。
小弟提供一下範例, 希望對你使用 regexp 有所幫助,
將此文件儲存成 .vbs 檔可直接執行, 看看結果。


msgbox "版本: vbscript "&scriptenginemajorversion&" build:"& scriptenginebuildversion

如果你的 vbscript 版本低於 5, 執行下列程式會發生錯誤

dim s, re, matches, match
s = "日本時間 11:34:56 , 台北時間 12:34:56。"
set re = new regexp

指定 email 的 pattern
re.pattern = "(\d+):(\d+):(\d+)"
re.global = true
set matches = re.execute(s)

build 號碼 4615 之前的版本可使用下面三範例取得符合的值


範例一: 顯示最後找到的字串
msgbox "範例一:" & matches.item(matches.count-1)

範例二: 把全部找到的字串列出來
for each matche in matches
msgbox "範例二:" & matche.value
next

範例三:
但()內的子字串在 build 4615 無法直接取得, 需要靠一些技巧
例如取得第一個字串的第三個子字串:
msgbox "範例三:" & re.replace(matches.item(0),"$3")

set match = nothing



build 號碼 5014 之後的版本可使用下面三範例取得符合的值
但在此 build 之前的版本會發生錯誤
可到微軟網站下載最新的 windows script 5.5 beta 2 (目前)


範例四: 顯示首先找到的字串
set match = matches(0)
msgbox "範例四:" & match

範例五: 子字串的數量
msgbox "範例五:" & match.submatches.count

範例六: 顯示第一個子字串
msgbox "範例六:" & match.submatches(0)

()

相关文章:
© 2006   www.java-asp.net