你怎么用VBA这个词写这个正则表达式?

问题描述 投票:0回答:1

我正在尝试在VBA中写一个正则表达式,其中两个空格后跟一个数字被替换为一个空格后跟一个数字。这是我提出的但它不起作用:

With ActiveDocument.Content.Find
    .Text = "(\s\s\d)"
    .Replacement.Text = "(\s\d)"
    .Forward = True
    .ClearFormatting
    .Replacement.ClearFormatting
    .MatchWildcards = True

End With
ActiveDocument.Content.Find.Execute Replace:=wdReplaceAll

我没有收到任何错误消息,而是在我的doc中没有出现任何影响。

官方文档位于:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference

#

UPDATE

我尝试使用高级查找和替换,我检查了use wild cards,我放入

Find:  [0-9]
Replace: [0-9]

这是Find:和[和Replace之间的一个空格:和[但它替换了字符串:'hey 8'和'hey [0-9]'之间的空格。

vba ms-word
1个回答
1
投票

您可以使用wildcards查找和替换:

发现:SpaceSpace([0-9])([0-9])前面两个空格)

替换:Space\1(单一空间和\1

Regex类似,()用于在wildcards进行分组。 \1表示文本中找到的第一个组,在这种情况下是一个数字。

如果您不确定文本前可以出现的空格数,可以使用Space{1,}来告诉单词找到任意数量的Spaces

© www.soinside.com 2019 - 2024. All rights reserved.