国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

VBS創建正則表達式對象的兩種方法

2020-06-26 18:30:40
字體:
來源:轉載
供稿:網友
貌似我看過的 VBScript 書籍沒有一本介紹過這種寫法,當然,書上沒寫的東西還有很多
 
一直以來,我都是用 New RegExp 來創建正則表達式對象的: 
Set regex = New RegExp然而最新才發現 VBS 的正則表達式對象也可以這樣創建: 
Set regex = CreateObject("VBScript.RegExp")貌似我看過的 VBScript 書籍沒有一本介紹過這種寫法,當然,書上沒寫的東西還有很多。 

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

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 屬性,甚至微軟官方的參考手冊上也沒有。 

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

'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, "") 
'相當于JavaScript中的 str = str.replace(/^/s*/n/gm, "") 
fso.OpenTextFile("demon.txt", 2).Write str 

原文來自:http://demon.tw/programming/vbs-regexp-object.html

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇赉县| 桃江县| 大洼县| 土默特右旗| 岳西县| 安溪县| 道真| 吴江市| 建水县| 轮台县| 马边| 长武县| 志丹县| 永仁县| 西峡县| 日照市| 怀仁县| 汉源县| 吉安县| 汪清县| 彭州市| 榆社县| 定安县| 灵武市| 庆云县| 安顺市| 富平县| 仁化县| 翁牛特旗| 凤台县| 灵璧县| 临安市| 肇东市| 和静县| 靖安县| 南雄市| 长沙市| 若尔盖县| 克什克腾旗| 龙门县| 白河县|