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

首頁(yè) > 編程 > VBScript > 正文

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

2020-07-26 11:49:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
一直以來(lái),我都是用 New RegExp 來(lái)創(chuàng)建正則表達(dá)式對(duì)象的:
Set regex = New RegExp然而最新才發(fā)現(xiàn) VBS 的正則表達(dá)式對(duì)象也可以這樣創(chuàng)建:
Set regex = CreateObject("VBScript.RegExp")貌似我看過(guò)的 VBScript 書籍沒(méi)有一本介紹過(guò)這種寫法,當(dāng)然,書上沒(méi)寫的東西還有很多。

既然提到了正則表達(dá)式,那么就順便說(shuō)一下,VBS 的正則表達(dá)式對(duì)象是支持 MultiLine 模式的,對(duì)象有一個(gè) MultiLine 屬性。運(yùn)行 Visual C++ 自帶的 OLE View,左邊樹(shù)展開(kāi) Type Libraries,找到 Microsoft VBScript Regular Expressions 5.5,可以看到該 COM 對(duì)象的屬性和方法:
復(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);
};

但是很多書上并沒(méi)有介紹,VbsEdit 的自動(dòng)完成功能中也沒(méi)有提示 MultiLine 屬性,甚至微軟官方的參考手冊(cè)上也沒(méi)有。

最后舉個(gè)簡(jiǎn)單的例子,假如你想把文本中的空行刪除,可以用下面的代碼:
復(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

原文來(lái)自:http://demon.tw/programming/vbs-regexp-object.html
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永济市| 沙坪坝区| 平顶山市| 绥宁县| 滁州市| 陵川县| 阿尔山市| 郯城县| 井冈山市| 建水县| 加查县| 神木县| 东港市| 霍林郭勒市| 东安县| 东明县| 南皮县| 长丰县| 大兴区| 邓州市| 邯郸市| 高淳县| 厦门市| 孟州市| 三明市| 鲁甸县| 东海县| 广元市| 绍兴县| 宜丰县| 阳西县| 漳州市| 涿鹿县| 岑溪市| 恩施市| 开鲁县| 崇左市| 庆城县| 达拉特旗| 长垣县| 响水县|