佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > VBS創(chuàng)建正則表達(dá)式對象的兩種方法

VBS創(chuàng)建正則表達(dá)式對象的兩種方法

熱門標(biāo)簽:銀行業(yè)務(wù) 鐵路電話系統(tǒng) 服務(wù)器配置 網(wǎng)站文章發(fā)布 檢查注冊表項(xiàng) 呼叫中心市場需求 智能手機(jī) 美圖手機(jī)
一直以來,我都是用 New RegExp 來創(chuàng)建正則表達(dá)式對象的:
Set regex = New RegExp然而最新才發(fā)現(xiàn) VBS 的正則表達(dá)式對象也可以這樣創(chuàng)建:
Set regex = CreateObject("VBScript.RegExp")貌似我看過的 VBScript 書籍沒有一本介紹過這種寫法,當(dāng)然,書上沒寫的東西還有很多。

既然提到了正則表達(dá)式,那么就順便說一下,VBS 的正則表達(dá)式對象是支持 MultiLine 模式的,對象有一個 MultiLine 屬性。運(yùn)行 Visual C++ 自帶的 OLE View,左邊樹展開 Type Libraries,找到 Microsoft VBScript Regular Expressions 5.5,可以看到該 COM 對象的屬性和方法:
復(fù)制代碼 代碼如下:

interface IRegExp2 : IDispatch {
[id(0x00002711), propget]
HRESULT Pattern([out, retval] BSTR* pPattern);
[id(0x00002711), propput]
HRESULT Pattern([in] BSTR pPattern);
[id(0x00002712), propget]
HRESULT IgnoreCase([out, retval] VARIANT_BOOL* pIgnoreCase);
[id(0x00002712), propput]
HRESULT IgnoreCase([in] VARIANT_BOOL pIgnoreCase);
[id(0x00002713), propget]
HRESULT Global([out, retval] VARIANT_BOOL* pGlobal);
[id(0x00002713), propput]
HRESULT Global([in] VARIANT_BOOL pGlobal);
[id(0x00002717), propget]
HRESULT Multiline([out, retval] VARIANT_BOOL* pMultiline);
[id(0x00002717), propput]
HRESULT Multiline([in] VARIANT_BOOL pMultiline);
[id(0x00002714)]
HRESULT Execute(
[in] BSTR sourceString,
[out, retval] IDispatch** ppMatches);
[id(0x00002715)]
HRESULT Test(
[in] BSTR sourceString,
[out, retval] VARIANT_BOOL* pMatch);
[id(0x00002716)]
HRESULT Replace(
[in] BSTR sourceString,
[in] VARIANT replaceVar,
[out, retval] BSTR* pDestString);
};

但是很多書上并沒有介紹,VbsEdit 的自動完成功能中也沒有提示 MultiLine 屬性,甚至微軟官方的參考手冊上也沒有。

最后舉個簡單的例子,假如你想把文本中的空行刪除,可以用下面的代碼:
復(fù)制代碼 代碼如下:

'Author: Demon
'Link: http://demon.tw/programming/vbs-regexp-object.html
'Date: 2011/12/26
Dim fso, regex, str
Set fso = CreateObject("Scripting.FileSystemObject")
Set regex = CreateObject("VBScript.RegExp")
str = fso.OpenTextFile("demon.txt").ReadAll
regex.Global = True
regex.MultiLine = True
regex.Pattern = "^\s*\n"
str = regex.Replace(str, "")
'相當(dāng)于JavaScript中的 str = str.replace(/^\s*\n/gm, "")
fso.OpenTextFile("demon.txt", 2).Write str

原文來自:http://demon.tw/programming/vbs-regexp-object.html
您可能感興趣的文章:
  • 編寫高質(zhì)量的js之正確理解正則表達(dá)式回溯
  • js編寫trim()函數(shù)及正則表達(dá)式的運(yùn)用
  • 使用Ruby re模塊創(chuàng)建復(fù)雜的正則表達(dá)式
  • 用正則表達(dá)式 動態(tài)創(chuàng)建/增加css style script 兼容IE firefox
  • 正則表達(dá)式創(chuàng)建方式的區(qū)別及編寫簡單的正則方式(js學(xué)習(xí)總結(jié))

標(biāo)簽:河南 沈陽 上海 新疆 滄州 樂山 紅河 長治

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBS創(chuàng)建正則表達(dá)式對象的兩種方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    贵阳市| 大同市| 三门县| 徐州市| 茂名市| 壤塘县| 冷水江市| 五家渠市| 竹溪县| 灵宝市| 固镇县| 长兴县| 铅山县| 商水县| 邻水| 洛宁县| 凉城县| 平度市| 仁布县| 岗巴县| 巴中市| 博客| 镇沅| 佳木斯市| 鄂尔多斯市| 莎车县| 荣昌县| 伊春市| 安化县| 调兵山市| 金平| 安丘市| 迁安市| 鄯善县| 澎湖县| 西贡区| 惠州市| 桑植县| 宣武区| 绍兴市| 东山县|