繁体   English   中英

MS Word VBA宏进行搜索和替换(正则表达式)

[英]MS Word VBA macro to search and replace (Regex)

假设一个单词文件包含

ab{cdefg{hij{k

我希望{像

abc{defgh{ijk{

我需要创建一个包含所有字符的数组,然后使用Regex搜索运行循环并替换

搜索:

({)(array[index])

更换:

$2$1

没有循环的普通正则表达式将无法正常工作,因为我正在处理具有复杂字符的印度文字。 我已经在inDesign中的JavaScript和ExtendScript上完成了此操作,但对VB却一无所知。 谁能帮忙吗?

这可以使用Word通配符搜索和替换来完成:

With ActiveDocument.Range.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .ClearAllFuzzyOptions
    .Text = "(\{)(?)"           ' find opening brace followed by a single character
    .Replacement.Text = "\2\1"  ' swap positions
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchFuzzy = False
    .MatchWildcards = True
End With
ActiveDocument.Range.Find.Execute Replace:=wdReplaceAll

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM