【发布时间】:2019-04-29 00:04:27
【问题描述】:
我在网上找过这个,但不幸的是没有快乐。我可以找到很多查找和替换的示例,但使用regex 查找和突出显示的例子不多。
我想做的是在 MS Word 文档中查找非拉丁代码页字符并突出显示它们。我认为最好的方法是使用regex(如果不是这种情况,欢迎提出建议)。下面的代码高亮了整个文档:
Sub Highlight_Words()
Dim oRE As New RegExp: oRE.Pattern = "[^a-zA-Z0-9:]"
Dim oM As Match
Application.ScreenUpdating = False
Options.DefaultHighlightColorIndex = wdRed
With ActiveDocument.Content.Find
.ClearFormatting
.Text = oRE.Pattern
'.Text = "[^a-zA-Z0-9\s:]"
'.Text = "[a-zA-Z\d\s:]"
'.Text = " "
With .Replacement
.Text = "^&"
.ClearFormatting
.Highlight = True
End With
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub
任何帮助将不胜感激,谢谢
附:我正在使用 Windows 7(64 位)和 Word 2013
更新1:
下面是一个示例文本:
这只是一个示例文本,用于测试突出显示非字母数字 字符(即不是英文字符的字符 (即À)而不是数字)。此规则有例外,例如 撇号(“2”)或冒号(“:”)或连字符(“-”)。但我可以添加这些 一旦我有了搜索非字母数字的主要模式,就会出现异常 字符
所以从上面的示例文本中,应该突出显示 À(我确实在文本中有其他字符,但不幸的是它们没有显示在网站上)
【问题讨论】: