VB6 0如何使用正規表示式

2021-09-05 21:09:40 字數 3870 閱讀 2499

最近在用vb6解決乙個網頁解析的應用,涉及到了正則。如何在vb6中使用正規表示式,這個在ms**上有介紹,不過介紹的不是很全面。下面結合ms**的內容和搜尋到的東西,自己彙總一下。

引用了microsoft vbscript regular expressions 5.5 後就可以宣告正則相關物件了。主要有三個物件:regexp、matchcollection、match。

1. regexp這是vb使用正規表示式匹配模式的主要物件了。其提供的屬性用於設定那些用來比較的傳遞給 regexp 例項的字串的模式。 其提供的方法以確定字串是否與正規表示式的特定模式相匹配。

屬性:

pattern:乙個字串,用來定義正規表示式。

ignorecase:乙個布林值屬性,指示是否必須對乙個字串中的所有可能的匹配進行正規表示式測試。這是ms的解釋,有點費解,實際使用中的例項是,如果true,則忽略英文本母大小的匹配,false對大小寫進行匹配。

global:設定乙個布林值或返回乙個布林值,該布林值指示乙個模式是必須匹配整個搜尋字串中的所有搜尋項還是只匹配第乙個搜尋項。

multiline:這個ms沒有介紹。查了一下資料,設定乙個布林值或返回乙個布林值,是否在串的多行中搜尋。如果允許匹配多行文字,則multiline為true,如果搜尋必須在換行時停止,則為false 。

方法:execute:返回乙個 matchcollection 物件,該物件包含每個成功匹配的 match 物件。

replace:ms沒有介紹,這是返回乙個將匹配字元替換為指定字元的字串。

test:返回乙個布林值,該值指示正規表示式是否與字串成功匹配。

2. matchcollection是集合物件,包含有關匹配字串的資訊,該物件包含每個成功匹配的 match 物件。

屬性

count:匹配物件的總數。

item:匹配物件的索引。

3. match是成功匹配的物件。

屬性:

firstindex:匹配物件所匹配字串的起始位置。

length:匹配物件所匹配字串的字元長度。

submatches:匹配物件所匹配結果的子項。

value:匹配物件所匹配的值。

相關示例參照ms的**: 。ms上沒有介紹的幾個屬性和方法的使用,見下面的幾個簡單示例:1. regexp的test方法:

1. regexp的test方法:

function

btest(byval s

asstring

, byval p

asstring

) as

boolean

dimre

asregexp

setre

=new

regexp

re.ignorecase

=false

'設定是否匹配大小寫

re.pattern =p

btest

=re.test(s)

end function

private

subcommand1_click()

dims

asstring

dimp

asstrings =

""'測試字串中是否包含數字:p =

"\d+

"msgbox

btest(s, p)

'測試字串中是否全是由數字組成:p =

"^\d+$

"msgbox

btest(s, p)

'測試字串中是否有大寫字母:p =

"[a-z]+

"msgbox

btest(s, p)

end sub

2. regexp的replace方法:

function

strreplace(s

asstring

, p

asstring

, r

asstring

) as

string

dimre

asregexp

setre

=new

regexp

re.ignorecase

=true

re.global

=true

re.pattern =p

strreplace

=re.replace(s, r)

end function

private

subcommand2_click()

dims

asstring

'字串

dimp

asstring

'正規表示式

dimr

asstring

'要替換的字串

'以下**是替換郵箱位址s =

"我的e-mail: [email protected] 。歡迎致電!"p

="w+@w+.w+"r

="[email protected]"s

=strreplace(s, p, r)

debug.print s

'end sub

3. match的submatches屬性:

private

subcommand3_click()

dimre

asregexp

dimmh

asmatch

dimmhs

asmatchcollection

diminpstr

asstring

inpstr ="

我的e-mail: [email protected] 。歡迎致電!

"set

re =

newregexp

re.pattern ="

(w+)@(w+).(w+)"'

同樣是匹配位址,注意和上例的不同

setmhs

=re.execute(inpstr)

setmh

=mhs(

0)                                      

'只有乙個匹配

debug.print ""

&mh.value                

'這裡是匹配的內容

debug.print

"使用者名稱是:             "&

mh.submatches(

0)  

'第乙個括號中的內容

debug.print

"郵箱是:                 "&

mh.submatches(

1)  

'第二個括號中的內容

debug.print

"網域名稱是:           "&

mh.submatches(

2)  

'第三個括號中的內容

end sub

VB中如何使用正規表示式

vb6.0中 在 專案 中的 referance 中選擇microsoft vbscript regular expression 5.5 確定function regexptest patrn,strng dim regex,retval 建立變 量。set regex new regexp 建立...

vb 正規表示式2

1.啟動 microsoft visual basic 6.0。2.在 檔案 選單上,單擊 新建專案 3.在 新建專案 對話方塊中,單擊 standard exe 然後單擊 確定 預設情況下將建立 form1。4.在 專案 選單上單擊 引用 5.雙擊 microsoft vbscript regul...

如何使用正規表示式

簡單的說就是對字串的一種匹配規則。在介紹如何使用之前,首先來推薦乙個學習工具,這個 可以練習正規表示式的使用。正規表示式的語法 點,可能看不太清 這個是萬用字元 可以作為任意字元,比如正規表示式為 李.則可以匹配到李四,李五等 w匹配所有的阿拉伯數字 英文大小寫字母和下劃線,w 大寫w 匹配被 w排...