如何模式匹配未知数量的字符
How to Pattern Match an Unknown Number of Characters
首先,我对编程不是很精通。我有一些宏可以帮助我完成工作,但我需要清晰的示例来制作这些宏。
我想在 Word 文档中找到任何具有多个下划线的实例,并将它们替换为一组下划线。连续可能有 30 到 5 个下划线,我希望能够找到这些并用恰好 10 个下划线替换它们。下划线最常出现在它们自己的段落中,但有时它们会与文本一起出现。
我在 和网上都看过了,但我不知道如何使用未知数量的下划线。
如果有人能指出正确的方向,我将不胜感激。谢谢
你可以
1) 将所有 "double" 下划线替换为 "single" 直到只有 "single" 下划线
2) 将所有 "single" 下划线替换为“_____”
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
Do
.Text = "__"
.Replacement.Text = "_"
.Wrap = wdFindContinue
.Format = False
.MatchWholeWord = False
.Execute Replace:=wdReplaceAll
Loop While .Found
.Text = "_"
.Replacement.Text = "_____"
.Wrap = wdFindContinue
.Format = False
.MatchWholeWord = False
.Execute Replace:=wdReplaceAll
End With
将 Selection
更改为您要处理的文档的实际部分(例如 ActiveDocument.Content
所有文档
你需要做的就是使用通配符!
一行代码就可以搞定:
ActiveDocument.Content.Find.Execute "_{5,30}", _
MatchWildcards:=True, Replace:=wdReplaceAll, _
ReplaceWith:="__________", Wrap:=wdFindContinue
注:
{5,30}
部分将保留小于 5 或大于 30 的下划线。
您可以将其更改为{,30}
以替换30个或更少的下划线
或{1,}
替换1个或多个下划线
可以找到有关通配符的易于理解的文章 here。
首先,我对编程不是很精通。我有一些宏可以帮助我完成工作,但我需要清晰的示例来制作这些宏。
我想在 Word 文档中找到任何具有多个下划线的实例,并将它们替换为一组下划线。连续可能有 30 到 5 个下划线,我希望能够找到这些并用恰好 10 个下划线替换它们。下划线最常出现在它们自己的段落中,但有时它们会与文本一起出现。
我在
如果有人能指出正确的方向,我将不胜感激。谢谢
你可以
1) 将所有 "double" 下划线替换为 "single" 直到只有 "single" 下划线
2) 将所有 "single" 下划线替换为“_____”
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
Do
.Text = "__"
.Replacement.Text = "_"
.Wrap = wdFindContinue
.Format = False
.MatchWholeWord = False
.Execute Replace:=wdReplaceAll
Loop While .Found
.Text = "_"
.Replacement.Text = "_____"
.Wrap = wdFindContinue
.Format = False
.MatchWholeWord = False
.Execute Replace:=wdReplaceAll
End With
将 Selection
更改为您要处理的文档的实际部分(例如 ActiveDocument.Content
所有文档
你需要做的就是使用通配符!
一行代码就可以搞定:
ActiveDocument.Content.Find.Execute "_{5,30}", _
MatchWildcards:=True, Replace:=wdReplaceAll, _
ReplaceWith:="__________", Wrap:=wdFindContinue
注:
{5,30}
部分将保留小于 5 或大于 30 的下划线。
您可以将其更改为{,30}
以替换30个或更少的下划线
或{1,}
替换1个或多个下划线
可以找到有关通配符的易于理解的文章 here。