Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产亚洲精品线观看77,91精品成人,2018国产大陆天天弄

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          基礎(chǔ)擴(kuò)展 | 08. VBA正則表達(dá)式

          正則表達(dá)式(RegEx)是一系列字符,定義搜索模式,用于查找字符串中特定的字符模式。

          VBA正則表達(dá)式的語法與其他語言(如Python)中使用的語法有較大的區(qū)別,主要是因?yàn)閂BA的RegEx對(duì)象帶有可選參數(shù),因此有時(shí)必須指定這些參數(shù)以獲得與在其他語言中使用標(biāo)準(zhǔn)的正則表達(dá)式語法相同的結(jié)果。

          VBA正則表達(dá)式語法基礎(chǔ)

          正則表達(dá)式搜索模式是由一個(gè)或多個(gè)下列元素組成的字符序列:

          元字符

          元字符是字符或字符組合,在正則表達(dá)式模式中具有特殊含義。元字符可以匹配輸入文本中的幾個(gè)不同字符,甚至可以表示字符以外的其他字符。下面是需要熟練掌握的一些元字符。

          通配符。未轉(zhuǎn)義的句點(diǎn)匹配任意字符,但新行除外。

          “字符串或者行的開頭”或“否定”。插入符號(hào)在搜索模式中的重要性取決于上下文。1)如果在VBA中將參數(shù)設(shè)置為True,則插入符號(hào)表示“行首”,而不是“字符串的開頭”。2)如果插入符號(hào)放在一個(gè)字符類[^]中,它就像一個(gè)否定,即“匹配與字符類的其他參數(shù)不匹配的所有字符。”

          “字符串的結(jié)尾。”搜索模式中美元符號(hào)的重要性取決于上下文。如果在VBA中將參數(shù)設(shè)置為True,則美元符號(hào)表示“行尾”,而不是“字符串結(jié)尾”。

          “轉(zhuǎn)義字符。” 元字符前面的反斜杠將其轉(zhuǎn)換為文字字符。

          \b

          “字邊界”或“退格字符”。在字符類的外面,\b匹配文本源中單詞之前或之后的位置。在字符類中,\b表示退格符。

          \B

          “不是一個(gè)字邊界。”\B是\b的否定,但在字符類中沒有替代含義。

          \d

          “數(shù)字。”匹配從0至9的任意數(shù)字。

          \D

          “非數(shù)字。”匹配不是數(shù)字的任意字符。

          \s

          “空白”。匹配空格、換行符或制表符。

          \S

          “非空白。”匹配不是空格、換行符或制表符的字符。

          字符^、$和\b稱為錨點(diǎn),因?yàn)樗鼈兤ヅ渥址啊⒅蠡蛑g的位置。

          操作符

          一些元字符改變了如何解釋搜索模式中的一個(gè)或多個(gè)其他元素,例如,它們對(duì)這些其他元素執(zhí)行操作。VBA正則表達(dá)式具有三種類型的運(yùn)算符。

          布爾運(yùn)算“或”

          元字符:|

          說明:表示布爾“或”運(yùn)算符

          示例:a|b匹配“a”或“b”

          分組

          元字符:()

          說明:括號(hào)用于下列目的:1)定義運(yùn)算符的范圍和優(yōu)先級(jí);2)對(duì)字符進(jìn)行分組并記住文本。

          示例:h(a|e)y匹配“hay”或“hey”

          量化

          元字符:?

          說明:前一個(gè)元素出現(xiàn)0次或1次。

          示例:colou?r匹配“color”和“colour”

          元字符:*

          電子郵件地址上的r是什么意思_電子郵件地址@之后是什么_電子郵件中的地址怎么寫

          說明:前一個(gè)元素出現(xiàn)0次或多次。

          示例:ab*c匹配“ac”、“abc”、“abbc”、“abbbc”,等等

          元字符:+

          說明:前一個(gè)元素出現(xiàn)1次或多次。

          示例:ab+c匹配“abc”、“abbc”、“abbbc”,等等,但不匹配“ac”

          元字符:{n}

          說明:前面的項(xiàng)目恰好匹配n次。

          示例:a{3}匹配“aaa”

          元字符:{min,}

          說明:前面的項(xiàng)目匹配min次或更多次。

          示例:a{1,}匹配“a”、“aa”、“aaa”,等等

          元字符:{min,max}

          說明:前面的項(xiàng)目匹配至少min次,但不多于max次。

          示例:a{1,3}匹配“a”、“aa”和“aaa”,但不匹配“aaaa”

          字符類

          字符類或字符集使用方括號(hào)[]指定,一些最常見的如下:

          [a-z]

          范圍從a到z的小寫字母集。

          [A-Z]

          范圍從A到Z的大寫字母集。

          [0-9]

          范圍從0到9的單個(gè)數(shù)字集。

          字符類經(jīng)常與搜索模式中的運(yùn)算符一起使用。例如,[0-5] +轉(zhuǎn)換為“找到一個(gè)或多個(gè)數(shù)字”,而不是僅從0到5的單個(gè)數(shù)字。

          函數(shù)

          在VBE菜單欄中,選取“工具——引用”命令,在“引用”對(duì)話框中找到并選取“ Regular 5.5”復(fù)選框,如下圖1所示。

          電子郵件地址@之后是什么_電子郵件地址上的r是什么意思_電子郵件中的地址怎么寫

          圖1

          插入一個(gè)標(biāo)準(zhǔn)模塊并輸入下面的代碼:

          Sub ()

          Dim r As Match

          Dim As

          Dim As String

          Dim As String

          = "在這個(gè)字符串中包含郵件地址,'Mary-Jo.T.+'."

          ="[a-z0-9-.+_]+@[a-z-]+\.[a-z]+"

          Set = RegEx(,, , , True)

          If Not Is Nothing Then

          For Each r In

          Debug.Print r

          Next r

          End If

          End Sub

          RegEx( , As String, _

          As Boolean, As Boolean, _

          As Boolean)

          Dim As

          Dim As New RegExp

          If Then

          With

          .Global =

          . =

          . =

          .Pattern =

          End With

          If .Test() Then

          Set =.Execute()

          Set RegEx =

          End If

          End If

          End

          過程將調(diào)用自定義的RegEx函數(shù)。在過程中,在變量中指定輸入文本,在變量中定義了搜索模式。代碼中,輸入文本包含一個(gè)假定電子郵件地址的字符串,其中包含有效電子郵件地址中允許的所有字符類型(允許+號(hào))。無論在輸入文本中如何重新排列該電子郵件地址,自定義函數(shù)RegEx都會(huì)找到它并將其返回,前提條件是,你要傳遞正確的參數(shù)。

          在RegEx函數(shù)中前兩個(gè)參數(shù)是剛才討論的輸入字符串和搜索模式變量,這些參數(shù)是必需的,而接下來的三個(gè)參數(shù)可選:

          在過程中,設(shè)置參數(shù)為False,但是如果我們將其設(shè)置為True并且在輸入文本中有多個(gè)電子郵件地址,那么它們將全部返回到匹配集合中。可選參數(shù)設(shè)置為True,否則搜索模式會(huì)變長:

          [a-zA-Z0-9-.+_]+@[a-zA-Z-]+\.[a-zA-Z]+

          上面模式中括號(hào)內(nèi)的項(xiàng)目表示字符集,后面跟著的加號(hào)是量詞,用于指定要查找字符的數(shù)量。中間的“@”字符表示搜索該字符,兩對(duì)雙括號(hào)中的點(diǎn)被反斜杠轉(zhuǎn)義,表示搜索文本中的點(diǎn)。

          從左至右閱讀上述模式,其表達(dá)的意思如下:

          查找一個(gè)或者多個(gè)從a到z的小寫字母或大寫字母、從0到9的數(shù)字、連字符(-)、點(diǎn)(.)、加號(hào)(+)或下劃線(_)

          并查找

          “@”符號(hào)

          并查找

          一個(gè)或者多個(gè)從a到z的小寫字母或大寫字母,或連字符(-)

          并查找

          “.”號(hào)

          并查找

          一個(gè)或者多個(gè)從a到z的小寫字母或大寫字母

          如果滿足所有條件并且輸入的字符串中的所有匹配字符是連續(xù)的且順序正確,那么RegEx函數(shù)將返回匹配的結(jié)果。這意味著,如果搜索模式中含有空白字符,將從根本上改變其意義。如果你錯(cuò)誤地在搜索模式中包含了空白字符,那么RexEx將在你指定的其他字符中查找空格。

          小結(jié)

          正則表達(dá)式常用于“查找和替換”,其中替換功能使用RegEx對(duì)象的Replace方法。你可以使用VBA正則表達(dá)式進(jìn)行各種高級(jí)文本處理,包括:

          雖然RegEx有很多非常好的應(yīng)用場合,但是也有一些不應(yīng)該使用的情形:


          主站蜘蛛池模板: 海角国精产品一区一区三区糖心 | 中文字幕一区二区在线播放| 秋霞鲁丝片一区二区三区| 国产精华液一区二区区别大吗| 亚洲欧洲一区二区三区| 亚洲av午夜福利精品一区人妖| 精品一区二区三区AV天堂| 久久一区不卡中文字幕| 亚洲成a人一区二区三区| 最新中文字幕一区二区乱码| 精品少妇ay一区二区三区 | 精品久久综合一区二区| 91一区二区在线观看精品| 波多野结衣高清一区二区三区| 暖暖免费高清日本一区二区三区| 久久久久久人妻一区精品| 久久99热狠狠色精品一区| av无码人妻一区二区三区牛牛| 无码精品人妻一区二区三区影院 | 日韩综合无码一区二区| 久久99精品免费一区二区| 538国产精品一区二区在线| 亚洲福利视频一区二区| 亚洲免费视频一区二区三区| 成人无号精品一区二区三区| 亚洲福利一区二区精品秒拍| 无码人妻av一区二区三区蜜臀| 国产精品污WWW一区二区三区| 痴汉中文字幕视频一区| 国产欧美一区二区精品仙草咪 | 精品人妻系列无码一区二区三区 | 麻豆va一区二区三区久久浪| 日韩在线一区二区三区视频| 日韩精品午夜视频一区二区三区| 毛片一区二区三区无码| 相泽南亚洲一区二区在线播放 | 亚洲一区在线观看视频| 毛片一区二区三区| 在线精品日韩一区二区三区| 亚洲日本一区二区一本一道| 在线视频一区二区三区三区不卡|