word查找指定内容批量替换为或加上自动连续编号(域)
有时候为了方便对文章进行修订,希望在文章里每一个段落的每个句子前进行连续编号。如题是一篇几十万字的文档,如何快速实现这个需求呢?
最终需要实现的效果如下图所示:
这个需求的关键有两个方面,一个是能够实现自动连续编号的域,一个是能够实现查找每一句话的正则表达式。
能够实现自动连续编号的域
在word中能够实现这一功能的域有AutoNum、AutoNumLgl、AutoNumOut和ListNum等。
前三个域仅可以实现每个段落的连续编号,不能实现段落内每个句子的连续编号,且不能调整编号开始的数字。在同一个文档内,AutoNum、AutoNumLgl和AutoNumOut三个域之间是相互影响的,如前面几段使用了AutoNum域进行编号,后面使用AutoNumLgl域进行编号,后面的编号是接续前面AutoNum域的编号的,不是重新开始的。
ListNum可以实现文档内每个句子的自动连续编号。ListNum是一种多级列表域,有四种内置列表。域代码与相应的输出如下。
(1)、{ LISTNUM l 1 }——输出内置默认列表的一级编号“1)”
(2)、{ LISTNUM LegalDefault l 1 }——输出输出内置LegalDefault列表的一级编号“1.”
(3)、{ LISTNUM NumberDefault l 1 }——输出输出内置NumberDefault 列表的一级编号“1)”
(4)、{ LISTNUM OutlineDefault l 1 }——输出输出内置OutlineDefault列表的一级编号“I.”
ListNum域,可以在任意位置设置编号重新以任意数字开始,编号的样式也比较多,而且是多级的编号,使用起来是很方便的。
所以使用第(2)个域代码可以实现上图所示的编号功能。
首先使用快捷键Ctrl+F9,输入一对域代码专用的大括号,然后将代码LISTNUM LegalDefault l 1 写入大括号内,按F9刷新即可得到域结果1.。
如果文档内容较少,那么我们可以手动复制这个域到其他位置,即可实现连续自动编号。
但文档内容多,我们需要将此域用于查找替换对话框中,以实现批量替换。
由于不能直接复制域代码放入替换框中,所以我们输入了第一个域代码后,需要将其剪切,然后在替换框中使用“^c”(剪贴板内容)来代替它。
能够实现查找每一句话的正则表达式
接下来,只要在“查找和替换”对话框中,批量查找每一个句子,并在其前面加上这个域代码即可。根据每个句子总是以文字开头,并以特定的几个标点结尾,写出如下表达式:
查找内容:([!^13^l]*[.?!。!?……])
替换:^c1
勾选“使用通配符”
最后点击“全部替换”即可完成整篇文档每个句子的自动连续编号。
切记,在点击“全部替换”之前,一定要将输入的第一个域代码剪切到剪贴板中,因为替换框中“^c”代表的剪贴板内容。
查找和替换的界面如下图所示。
以上方法,可以将文档中任意指定字符或内容替换为或加上自动连续编号,并不局限于文首所说的需求。