我有一个文档,其中到处都是 (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 网站上。简而言之,
输入以下名称列表
Chuck Norris Bruce Lee James Bond Bond
在主页选项卡上,在編輯组,点击代替打开查找和替换对话框。
- 如果你没有看到使用通配符复选框,单击更多的,然后选中复选框。如果不选中复选框,Word 会将通配符视为文本。
在找什么框。请确保在两组括号之间留有空格:
(<*>) (<*>)
在里面用。。。来代替框中,输入以下字符。请确保在逗号和第二个斜杠之间留有空格:
\2, \1
选择表格,然后单击“全部替换”。Word 会转置名称并用逗号分隔它们,如下所示
Norris, Chuck Lee, Bruce Bond, James Bond
警告,对于我在 OSX 10.10.2 上使用 Office 2011 的我来说,这个功能不起作用。不过,该页面上有更多有关更高级功能的信息。
答案3
微软声称拥有自己的通配符语言“正则表达式”,并且仅在“高级查找或替换”对话框中可用。其语言与其他正则表达式略有不同。