【问题标题】:C# Word 2007 Add In RegexC# Word 2007 添加正则表达式
【发布时间】:2017-03-22 18:17:00
【问题描述】:

我正在创建一个 Visual Studio C# 字添加应用程序。在 Ribbon.cs 中,下面是用于查找和替换的按钮事件中的正则表达式代码。

我担心的是,对于 ** 标记,我需要查找整个 word 文档并将查找文本替换为正则表达式。好心提醒。谢谢。

Regex.Replace(**, @"查找", "替换");

【问题讨论】:

标签: c# ms-word add-in


【解决方案1】:

您不能在 Word 中使用 Regex,因为 word 文档不是字符串。 但是您可以使用 Word 的内置搜索和使用通配符替换。

这是它在 VBA 中的样子,请注意 MatchWildcardsproperty。 您将能够轻松地用 C# 重写它。

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "Find"
    .Replacement.Text = "Replace"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

【讨论】:

  • 谢谢您的回答,请问我可以使用通配符替换正则表达式之类的文本吗,例如查找 A([s-u]*)S,替换为 B$1B。我的意思是美元因素。
  • 不,Word 通配符语法与正则表达式语法完全不同,但它也非常强大。网上有很多关于这种语法的文档,例如这里:support.office.com/en-us/article/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多