正規表示式在VB中的應用

2021-05-17 23:32:57 字數 3003 閱讀 4744

引用了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的**http://support.microsoft.com/kb/818802/zh-cn (ms上沒有介紹的幾個屬性和方法的使用)

二、正規表示式30分鐘入門教程www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm#mission

下面介紹幾個簡單示例:

1. regexp的test方法:

function btest(byval s as string, byval p as string) as boolean

dim re as regexp

set re = new regexp

re.ignorecase = false '設定是否匹配大小寫

re.pattern = p

btest = re.test(s)

end function

private sub command1_click()

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

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 as string, p as string, r as string) as string

dim re as regexp

set re = new regexp

re.ignorecase = true

re.global = true

re.pattern = p

strreplace = re.replace(s, r)

end function

private sub command2_click()

dim s as string     '字串

dim p as string     '正規表示式

dim r as string     '要替換的字串

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

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

p = "w+@w+.w+"

r = "[email protected]"

s = strreplace(s, p, r)

debug.print s

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

end sub

3. match的submatches屬性:

private sub command3_click()

dim re as regexp

dim mh as match

dim mhs as matchcollection

dim inpstr as string

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

set re = new regexp

re.pattern = "(w+)@(w+).(w+)"         '同樣是匹配位址,注意和上例的不同

set mhs = re.execute(inpstr)

set mh = mhs(0)                                      '只有乙個匹配

debug.print "電子郵件位址是: " & mh.value                '這裡是匹配的內容

debug.print "使用者名稱是:              " & mh.submatches(0)  '第乙個括號中的內容

debug.print "郵箱是:                  " & mh.submatches(1)  '第二個括號中的內容

debug.print "網域名稱是:            " & mh.submatches(2)  '

正規表示式在JS中的應用

正規表示式作用 用來過濾指定規則的字元的一種方法,比較便捷。在js中定義正規表示式中,正規表示式都是在 g中定義的,表示的是g表示的是全域性的。而雙斜槓 就是使用字面量表示式的方式。兩者並沒有本質不同。就像宣告乙個陣列,我們既可以用new array 又可以 使用一對中括號的方式。用字面量的方式有乙...

正規表示式在Mysql中的應用

mysql僅支援多數正規表示式實現的一小部分的子集 mysql select ename,deptno from emp where deptno regexp 20 ename deptno smith 20 jones 20 scott 20 adams 20 ford 20 5 rows in...

vb 正規表示式2

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