日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Word VBA|通配符查找、替換、VBA及正則表達(dá)式

 xylloyd 2019-08-28

如要將一個(gè)Word文檔內(nèi)的兩個(gè)漢字中間的空格替換掉(之所以要特定要求兩個(gè)漢字中間,是為了避免文本中的英文空格替換掉),可以使用查找、替換的通配符。

Word VBA|通配符查找、替換、VBA及正則表達(dá)式

查找:([一-﨩])( )([一-﨩])

替換:\1\3

寫成VBA代碼:

Sub 替換()With Selection.Find .Text = '([一-﨩])( )([一-﨩])' .Replacement.Text = '\1\3' .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAllEnd Sub

如果使用正則的選擇、查找、替換,則會(huì)有副作用,因?yàn)橐冗x擇,會(huì)將其中的文本格式、圖片都替換掉。

Sub replacetxt222() Dim regex As Object Dim regMatch As Object Set regex = CreateObject('VBScript.RegExp') Dim str As String str = Selection.Text With regex .Pattern = '([一-﨩])( )([一-﨩])' .MultiLine = True .Global = True .IgnoreCase = True str = .Replace(str, '$1$3') Debug.Print (str) End With Selection.Text = strEnd Sub

當(dāng)然也可以將中文中的半角標(biāo)點(diǎn)替換為全角:

Word VBA|通配符查找、替換、VBA及正則表達(dá)式

([一-﨩])(,)([一-﨩])

\1,\3

通配符的一般規(guī)則為:

Word VBA|通配符查找、替換、VBA及正則表達(dá)式

如 (<*>) (<*>)就可以分組匹配兩個(gè)單詞,中間有空格。

另外,\d在正則中表示數(shù)字,而在查找、替換對(duì)話框中是沒有這一寫法的,可以用以下表達(dá)式表示:

[0-9]{1,2}

表示匹配一個(gè)或兩個(gè)數(shù)字。

需要注意的是,VBA的正則表達(dá)式與查找對(duì)話框中的通配符的寫法與支持的功能是有所區(qū)別的。

查找、替換對(duì)話框中不使用通配符時(shí),可用^#來表示數(shù)字,其“特殊格式”的彈出菜單為:

Word VBA|通配符查找、替換、VBA及正則表達(dá)式

如段落標(biāo)記^p,通配符中用^13表示。

查找、替換對(duì)話框中使用通配符時(shí),其“特殊格式”的彈出菜單為:

Word VBA|通配符查找、替換、VBA及正則表達(dá)式

一些常用的特殊格式的通配符寫法可以從以上彈出菜單中得到幫助。

-End-

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多