我正在尝试在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中没有出现任何影响。
官方文档位于:
#UPDATE
我尝试使用高级查找和替换,我检查了use wild cards
,我放入
Find: [0-9]
Replace: [0-9]
这是Find:和[和Replace之间的一个空格:和[但它替换了字符串:'hey 8'和'hey [0-9]'之间的空格。
您可以使用wildcards
查找和替换:
发现:SpaceSpace([0-9])
(([0-9])
前面两个空格)
替换:Space\1
(单一空间和\1
)
与Regex
类似,()
用于在wildcards
进行分组。 \1
表示文本中找到的第一个组,在这种情况下是一个数字。
如果您不确定文本前可以出现的空格数,可以使用Space{1,}
来告诉单词找到任意数量的Spaces
。