word 正则表达式 替换_Word VBA|通配符查找、替换、VBA及正则表达式

本文介绍了如何在Word文档中精确地替换两个汉字之间的空格,避免影响到文本中的英文空格。通过使用查找和替换功能结合通配符,以及提供VBA代码实现此目的的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如要将一个Word文档内的两个汉字中间的空格替换掉(之所以要特定要求两个汉字中间,是为了避免文本中的英文空格替换掉),可以使用查找、替换的通配符。

91e3b622dc2f5c6c0491f7a0f1af4516.png

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

替换:13

写成VBA代码:

Sub 替换()With Selection.Find .Text = "([一-﨩])( )([一-﨩])" .Replacement.Text = "13" .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

如果使用正则的选择、查找、替换,则会有副作用,因为要先选择,会将其中的文本格式、图片都替换掉。

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

当然也可以将中文中的半角标点替换为全角:

002e652c9e315c31c5650578d223a900.png

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

1,3

通配符的一般规则为:

da686b3183ec41b58f8945b899d17b1e.png

如() ()就可以分组匹配两个单词,中间有空格。

另外,d在正则中表示数字,而在查找、替换对话框中是没有这一写法的,可以用以下表达式表示:

[0-9]{1,2}

表示匹配一个或两个数字。

需要注意的是,VBA的正则表达式与查找对话框中的通配符的写法与支持的功能是有所区别的。

查找、替换对话框中不使用通配符时,可用^#来表示数字,其“特殊格式”的弹出菜单为:

236fb75cd67d8be579976a9b0ce83e32.png

如段落标记^p,通配符中用^13表示。

查找、替换对话框中使用通配符时,其“特殊格式”的弹出菜单为:

ecdd3fb336b9d0df06d17dc06a091b55.png

一些常用的特殊格式的通配符写法可以从以上弹出菜单中得到帮助。

-End-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值