Tek 發表
瞭解VBScript處理字串的精華
通用運算式(Regular Expression)是一個非常強大且廣用的物件•
如果你完全沒有頭緒為什麼有很多論壇有自動連結、自創語法(GB 語法之類)等那麼強的字串處理的功能,這一篇文章將可以帶給您很大的幫助!
創造屬於自己的論壇語法再也不是什麼學不來的事情了• 這一項教學文章主要分為兩篇來講,分別為該物件的 pattern 模式和方法(method)參考•
另外雖然通用運算式可用在ASP和VBScript上(ASP的預設語言),但為了方便我還是直接以VBScript當作範本參考•
如果您缺少VBScript的基本經驗,那麼這一個教學可能不適合您• 以下將會是所有例子的原始碼範例,綠字部份代表是您這一次主要會學到的地方• 要使用的話,只要給予一個新的 pattern 和一個要被搜尋的新字串就可以了• <Script Language="VBS"> 'Coded by Tek Option Explicit Sub regular_exp(s_strg, patternstr) ' 參數s_strg 是原字串 ,patternstr 是pattern的設定值 If s_strg <> "" And patternstr <> "" Then Dim regex, match, matches Set regex = New RegExp With regex .IgnoreCase = True ' 不理會英文大小寫問題 .Global = True ' 比對整個字串中所有符合的項目 .Pattern = patternstr ' 運算式模式 End With Set matches = regex.Execute(s_strg) For Each match In matches document.write match.value & "<br>" ' 寫出結果 Next End If End Sub </Script> 需要呼叫這一個 Subroutine,您可以在 End Sub 的下一行使用 Call() 來啟動,這是一個例子: call(regular_exp("我的電話號碼是123-4567沒用分機", "\d{3}-\d{4}")) 我使用的 pattern 是在一個字串中尋找有電話文字格式的字串,所以我會得到這結果: 123-4567 【二】設定: pattern 模式設定介紹 VBScript 5.6 總共有32個pattern字元可使用•在設定pattern時,您可以一般文字與設定值字串混在一起使用,程式會自己依照您給予與的pattern去自動辨識搜尋• 以下的範例我可能寫的有點複雜(事實上這些範例還不夠完美,不過那暫時不講,否則真的又會更囉嗦),但我有另外寫註解•有些想通了可以解決很多你想要創造自己論壇語法的困擾•) 看不懂的話慢慢看還是自然會懂的 :-) 另外,過於簡單的字元沒範例• 等有需要我會再另外update:
To be continued... |