tft每日頭條

 > 科技

 > vba字符串精确匹配正則

vba字符串精确匹配正則

科技 更新时间:2024-09-28 15:14:13

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)1

我們在查找時通常會用通配符“*”表示任意字符,在正則表達式中也有一些固定的字符,它們可以表達某一類型的字符,以實現強大的匹配能力,這就是元字符。

下面例舉一些常用的元字符:(注意大小寫之分)

\d 匹配一個數字字符

\D 匹配一個非數字字符

\w 匹配包括下劃線的任何單詞字符。[A-Za-z0-9_]

\W 匹配任何非單詞字符

\s 匹配任何空白字符,包括空格、制表符、換頁符等等

\S 匹配任何非空白字符

\b 匹配一個單詞邊界,也就是指單詞和空格間的位置

\B 匹配非單詞邊界

\n 匹配一個換行符

\r 匹配一個回車符

\t 匹配一個制表符

. 匹配除"\n"之外的任何單個字符。

我們通過具體的例子來體會下這些元字符的作用:

一、\d 匹配一個數字字符演示效果

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)2

總結:在\d情況下,原數據中的數字不僅得到替換而且下劃線也進行了消除。

代碼如下:

Sub 演示VBA正則元字符匹配能力()

Dim regx As Object, n%

‘Dim regx As Object聲明regx為對象變量, n%聲明你為整形變量,%為是Interger整型變量的簡寫符号.

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True ‘Global屬性,指查找範圍,true為全部查找,false隻查找第一個

.Pattern = "\d" ' 下面例子中逐一替換即可

End With

Do

n = n 1

Cells(n 1, 2).Value = regx.Replace(Cells(n 1, 1).Value, "")

‘Cells(n 1, 2)中2指的是結果所在列.

Loop Until Cells(n 1, 1).Value = ""

End Sub

二、\D 匹配一個非數字字符演示效果

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)3

總結:

2.1 在\D情況下,原數據除了數字以外的數值全部得到了替換而且下劃線也進行了消除。

2.2 下劃線上面沒有數值的,下劃線是按照所占據的英文狀态下的空格逐一進行替換,有多少個空格就替換多少次,比如最後一行的長下劃線就替換了14個空格。

代碼如下:

Sub 演示VBA正則元字符匹配能力()

Dim regx As Object, n%

‘Dim regx As Object聲明regx為對象變量, n%聲明你為整形變量,%為是Interger整型變量的簡寫符号.

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True ‘Global屬性,指查找範圍,true為全部查找,false隻查找第一個

.Pattern = "\D" ' 下面例子中逐一替換即可

End With

Do

n = n 1

Cells(n 1, 3).Value = regx.Replace(Cells(n 1, 1).Value, "")

‘Cells(n 1, 3)中3指的是結果所在列.

Loop Until Cells(n 1, 1).Value = ""

End Sub

三、\w 匹配包括下劃線的任何單詞字符演示效果。[A-Za-z0-9_]

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)4

總結:大小寫字母、數字和空白下劃線都進行了替換,有數值的下劃線消失不見。

代碼如下:

Sub 演示VBA正則元字符匹配能力()

Dim regx As Object, n%

‘Dim regx As Object聲明regx為對象變量, n%聲明你為整形變量,%為是Interger整型變量的簡寫符号.

Set regx = CreateObject("vbscript.regexp")

With regx

.Global = True ‘Global屬性,指查找範圍,true為全部查找,false隻查找第一個

.Pattern = "\w" ' 下面例子中逐一替換即可

End With

Do

n = n 1

Cells(n 1, 4).Value = regx.Replace(Cells(n 1, 1).Value, "")

‘Cells(n 1, 4)中4指的是結果所在列.

Loop Until Cells(n 1, 1).Value = ""

End Sub

至此代碼不再一一展示,隻要改一下元字符運行即可看到效果.

四、\W 匹配任何非單詞字符演示效果

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)5

總結:圖文除字母、數字和空白數值的下劃線以外的字符都進行了替換。

五、\s 匹配任何空白字符,包括空格、制表符、換頁符等等

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)6

六、\S 匹配任何非空白字符

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)7

總結:從圖中可以看出空白字符和換行符不會得到替換。

七、\b 匹配一個單詞邊界,也就是指單詞和空格間的位置

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)8

總結:圖中重色框線部分就是單詞邊界。

八、\B 匹配非單詞邊界

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)9

總結:所謂非單詞邊界是指非空英文單詞字母之間,非空中文字符之間,非空數字之間,非英文字符和空格之間,兩個(含)以上連續空格都是非單詞邊界。

九、\n 匹配一個換行符

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)10

總結:從圖中可以看出換行符已經替換。十、\r 匹配一個回車符

Excel中不能直接按回車換行,否則會自動跳轉至下一個單元格。

十一、\t 匹配一個制表符

什麼是制表符,請看下圖:

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)11

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)12

制表符可以用來制作表格,它們在第9區。它們有:

制表符

┌ └ ┐ ┘ ─ │ ├ ┤ ┬ ┴ ┼

用它們可以制表(不用Excel),而且隻要是宋體,在任何電腦上都可以觀看。

制表符主要應用于word中。

十二、. 匹配除"\n"之外的任何單個字符。

vba字符串精确匹配正則(如何使用VBA中正則表達式之元字符實現強大的匹配能力)13

總結:從上圖中可以看出,除了換行符以外的所有字符都得到了替換。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved