如何在 Microsoft Word 中使用正则表达式查找并替换括号内的文本

如何在 Microsoft Word 中使用正则表达式查找并替换括号内的文本

我有一个文档,其中到处都是 (TL by user)。我想用空字符替换它(从而将其从所有地方删除),但用户可能不同,或者可能有许多用户 (TL by user1) (TL by user3, superuser1)。到目前为止,我尝试过查找 (TL by .*) 并用空字符替换,但由于某种原因,这会删除用户和周围的括号之外的所有内容,因此只剩下 (user1) 或 (user3,superuser1)。如何让正则表达式匹配并替换整个匹配项 (TL by user),包括括号和其中的所有内容?

这是在 Word 2010 上,今天晚些时候回家后我会提供更多信息

答案1

Office 中没有实际的“RegEx”搜索,但您可以使用“使用通配符”选项。

因此,由于它不是真正的 RegEx,因此它.不会提供任何帮助。您只需要*通配符。

下一个技巧是,在 Word 中执行通配符搜索时,括号()用于分组(如在 RegEx 中一样),因此如果您想搜索文字括号,则需要使用反斜杠 ( \) 对其进行转义。

将所有这些放在一起,我最终得到了这个“查找”命令,它可以按照您想要的方式工作(基于我的测试):

\(TL by *\)

我使用的“查找和替换”对话框设置:

在此处输入图片描述

答案2

您的问题缺少版本和平台信息,但我确实找到了本文在 MS 网站上。简而言之,

  1. 输入以下名称列表

    Chuck Norris
    Bruce Lee
    James Bond Bond
    
  2. 在主页选项卡上,在編輯组,点击代替打开查找和替换对话框。

  3. 如果你没有看到使用通配符复选框,单击更多的,然后选中复选框。如果不选中复选框,Word 会将通配符视为文本。
  4. 找什么框。请确保在两组括号之间留有空格:

    (<*>) (<*>)

  5. 在里面用。。。来代替框中,输入以下字符。请确保在逗号和第二个斜杠之间留有空格:

    \2, \1

  6. 选择表格,然后单击“全部替换”。Word 会转置名称并用逗号分隔它们,如下所示

    Norris, Chuck
    Lee, Bruce
    Bond, James Bond
    

警告,对于我在 OSX 10.10.2 上使用 Office 2011 的我来说,这个功能不起作用。不过,该页面上有更多有关更高级功能的信息。

答案3

https://support.office.com/en-us/article/Find-and-replace-text-and-other-data-in-a-Word-document-c6728c16-469e-43cd-afe4-7708c6c779b7详细了解

微软声称拥有自己的通配符语言“正则表达式”,并且仅在“高级查找或替换”对话框中可用。其语言与其他正则表达式略有不同。

相关内容