VBS創(chuàng)建正則表達(dá)式對(duì)象的兩種方法
一直以來,我都是用 New RegExp 來創(chuàng)建正則表達(dá)式對(duì)象的:
Set regex = New RegExp然而最新才發(fā)現(xiàn) VBS 的正則表達(dá)式對(duì)象也可以這樣創(chuàng)建:
Set regex = CreateObject("VBScript.RegExp")貌似我看過的 VBScript 書籍沒有一本介紹過這種寫法,當(dāng)然,書上沒寫的東西還有很多。
既然提到了正則表達(dá)式,那么就順便說一下,VBS 的正則表達(dá)式對(duì)象是支持 MultiLine 模式的,對(duì)象有一個(gè) MultiLine 屬性。運(yùn)行 Visual C++ 自帶的 OLE View,左邊樹展開 Type Libraries,找到 Microsoft VBScript Regular Expressions 5.5,可以看到該 COM 對(duì)象的屬性和方法:
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 的自動(dòng)完成功能中也沒有提示 MultiLine 屬性,甚至微軟官方的參考手冊(cè)上也沒有。
最后舉個(gè)簡單的例子,假如你想把文本中的空行刪除,可以用下面的代碼:
'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
欄 目:vb
下一篇:bookfind 通過ISBN序號(hào)獲取圖書連接的書名與作者的vbs代碼
本文標(biāo)題:VBS創(chuàng)建正則表達(dá)式對(duì)象的兩種方法
本文地址:http://www.jygsgssxh.com/a1/vb/7402.html
您可能感興趣的文章
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語法速查及實(shí)例說明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁面中添加VBscript代碼


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實(shí)例說明
隨機(jī)閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改


