- vba正則表達(dá)式的說明
項(xiàng)目 | 說明 |
---|---|
Pattern | 在這里寫正則表達(dá)式,例:[\d]{2,4} |
IgnoreCase | 大小寫區(qū)分,默認(rèn)false:區(qū)分;true:不區(qū)分 |
Global | true:全體檢索;false:最小匹配 |
Test | 類似perl正則前的m,匹配項(xiàng)目 |
Replace | 類似perl正則前的s,替換項(xiàng)目 |
Execute | 類似java的matcher,然后能取出里邊的group1,group2,group3;或者perl里匹配的各個括號的值 |
※正則表達(dá)式怎么寫,這里不做說明,我是做perl的時候看了那本駱駝書然后頓悟的,以前特別怕寫正則,現(xiàn)在還挺喜歡寫的,特別是用正則解決了問題后
2.Test的用法
Sub test()
Dim RE As String
Dim patt As String
Set RE = CreateObject("VBScript.RegExp")
pattern = "[0-9]{2,4}"
With RE
.pattern = patt
.IgnoreCase = True
.Global = True
If .test("word1234aa") Then
Debug.Print "11111"
Else
Debug.Print "22222"
End If
If .test("word4aa") Then
Debug.Print "33333"
Else
Debug.Print "44444"
End If
End With
Set RE = Nothing
End Sub
執(zhí)行結(jié)果:
原因:沒有引正則的包
很遺憾,macos vba無法使用正則,因?yàn)闆]有正則的引用
但是上邊我寫的正則匹配應(yīng)該是沒問題的
3.Replace的用法文章來源:http://www.zghlxwxcb.cn/news/detail-726478.html
Sub test()
Dim RE As String
Set RE = CreateObject("VBScript.RegExp")
With RE
.pattern = "[0-9]{2,4}"
.IgnoreCase = False
.Global = True
End With
Dim str As String, ret As String
str = "I love you 123"
ret = RE.Replace(str, "zy")
Debug.Print ret
Set RE = Nothing
'輸出結(jié)果:I love you zy
End Sub
4.Execute的用法文章來源地址http://www.zghlxwxcb.cn/news/detail-726478.html
Sub test()
Dim RE, patt As String, pmatch
Set RE = CreateObject("VBScript.RegExp")
patt = "I love ([\d]+) and ([\d]+)"
With RE
.pattern = patt
.IgnoreCase = True
.Global = True
Set pmatch = .Execute("I love 123 and 456")
If pmatch.Count > 0 Then
Debug.Print pmatch(0) & "======" & pmatch(1)
End If
End With
Set pmatch = Nothing
Set RE = Nothing
End Sub
到了這里,關(guān)于(十五)VBA常用基礎(chǔ)知識:正則表達(dá)式的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!