pCloud Partner Program

'SubMatches'相關日誌共 1 篇

  1. 2008/10/23 RegExp物件的group元素取出方式

RegExp物件的group元素取出方式

程式技術/ASP 2008/10/23 17:29
views: 105091 times
真的很妙......

這篇是要說明 RegExp 在 VBScript (WShell, ASP皆同) 內使用的狀況, 今天正在解決一個解析指令的語法, 想說利用 Regulare Expression 這個好物來處理一下, 結果真是令人不開心啊. 因為查了半天 msdn, 都沒有找到將 group 元素取出的方式, 所以整個就是失落(因為明明就應該是有方法可以取出來才對). 查到的文件在這裡:
http://msdn.microsoft.com/en-us/library/ms974570.aspx

想說怎麼會沒有這個語法呢? 真的是太奇怪了. 於是再到 google 另外查了一下, 發現其實還有個 SubMatches 的 collection 啦, 原來如此, 這個才是真的拿到 group 元素的方式, 想來真的是自己沒有仔細查找清楚, 只能再做個筆記自己記錄一下.

msdn 其實是有資料的, 在這裡:
http://msdn.microsoft.com/en-us/library/y27d2s18(VS.85).aspx

好地, 回到主題, 簡單地說, 今天原來要做的需求很單純, 就是將一個控制指令中的各項參數取出, 如下:

control_[series]_batch_[bno]_target_[tno]_end

這樣的一個字串, 將其中的 [series], [bno], [tno] 取出來, for example, 像是這樣的一個指令:

control_276324_batch_23_target_14_end

要將其中的 276324 及 23 及 14 取出, 若是用 parse 的方式比較麻煩, 就是一個一個比對下去, 但用 RegExp 就方便了, 既能檢查 pattern, 又可以將參數一次取出, 一舉兩得, 接下來就著手來作業了, 程式碼如下:



若是指令(strCmd)是多組, 也可以一次都處理完成, 利用 objMatches(i) 來取得, 不過就是要將 objReg.Global 設為 True 就是了.

這樣就可以一口氣將 series, bno, tno 全數取得, 一方面檢查看指令是否符合 pattern, 一方面又可以將所需要的參數取出, 豈不快哉!?


top




AGI 亞奇雷 240GB 2.5吋 SATA3 SSD 固態硬碟
TEAM十銓 L5 Lite 3D 1TB 2.5吋 SSD固態硬碟
統一 番茄汁(6入/組)


 Waiting...