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