正则查找倒数第二个符合条件的字符串_EXCEL正则表达式的基础语法
正則表達式的基本概念及用途了解之后,我們就來學習下具體的語法,先以一個簡單的例子來講解。
基礎語法:
比如,A1單元格中有一串字符:aabbccddaabbcc,我們要把其中的a找到,然后替換成o。
代碼如下:
Sub test()
Dim regx As Object, t$, k, s, n
t = "aabbccddaabbcc"
Set regx = CreateObject("vbscript.regexp")'引用正則表達式
regx.Global = True '查找范圍,true為全部查找,false只查找第一個,默認是false。
regx.Pattern = "a" '引號里書寫正則表達式,這里要查找a,就直接寫個a
Set k = regx.Execute(t) 'Execute方法的結果為一個對象,返回匹配成功的結果。
For Each s In k '通過循環K可以得到該對象中的每個元素。
MsgBox s
Next
n = regx.Replace(t, "o") '將匹配成功的結果做替換
MsgBox n
End Sub
上面的代碼后面都有注釋,首先要引用正則表達式,前期綁定也可以,直接創建也可以,然后要對regexp的兩個屬性做出指定。
Global屬性,指查找范圍,true為全部查找,false只查找第一個,如果上面案例中其屬性改為false,那么只要該字符串中查找第一個a。
Pattern屬性,指的是正則表達式。
下面講下正則表達式的兩個方法:
Execute方法,返回匹配成功的結果,是一個對象,通過for each 可以循環其中的值。
Replace方法,將匹配的結果做替換,regx.Replace(t, "o"),t為原字符串,第二個參數為要替換為的結果。
普通字符的替換:
了解了基礎的語法之后,我們來看下如何用正則對普通的字符做替換。
如上例中,把A列部門中的門字去掉。
思路:
對A列部門循環,循環出來的值用正則表達式匹配門字,并把匹配的結果替換成空。
代碼如下:
Sub test1()
Dim regx As Object, rng1 As Range
Set regx = CreateObject("vbscript.regexp")
With regx
.Global = True
.Pattern = "門"
End With
For Each rng1 In Range("a2:a11")
rng1(1, 2).Value = regx.Replace(rng1.Value, "")
Next
End Sub
這里注意regexp的兩個屬性可以用with語法來書寫,這樣顯得簡潔明了。當然這節課我們只是對正則表達的基礎語法做了個了解,正則表達是真正的魅力在Pattern = "……",引號中的表達式,后面的課程中我們會體會到他的強大之處。
轉自:米宏Office
總結
以上是生活随笔為你收集整理的正则查找倒数第二个符合条件的字符串_EXCEL正则表达式的基础语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue进入页面执行的钩子函数_解决VUE
- 下一篇: docker开放的端口_关于docker