有时候,需要整理的文档有大量重复的段落,如何批量清除呢?

 

 [准备工作]

 

 1、把每个段落标记替换为二个(查找内容“^p”,替换为“^p^p”)

 

 2、把光标放在文章开始处(Ctrl+Home),因为WORD默认是从光标开始处查找。或者全选文档(Ctrl+A)。

 

 

 [正式开始]

 

 如果是连续的重复段落:

 

 点击:编辑-替换 勾选通配符

 

 查找内容:(^13[!^13]@^13){2,}

 

 替换为:\1

 

 全部替换

 

 重复一下,看看有没有替换干净(一个段落一般不会重复255次以上吧,呵呵),不行就再来几次,直到

 

 替换处数为0。

 

 此命令效率非常之高!成千上万页内容可瞬间完成!

 

 

 如果是不连续的重复段落:

 

 点击:编辑-替换

 

 勾选通配符

 

 查找内容:(^13[!^13]@^13)(*)\1

 

 替换为:^13\1\2

 

 全部替换

 

 重复几次,只到替换处数为0。

 

 此命令对数百页文档可能需时较长,因为要执行循环比较,请耐心等候!

 

 这段代码的意思:

 查找内容:(^13[!^13]@^13){2,}

 

 替换为:\1

 

 ^13表示段落标记,[!]表示“非”,[!^13]表示段落标记之外的任意单个字符;@表示一个以上的前一字符或表达式,它跟[!^13]一起表示一个以上的段落标记之外的字符,^13[!^13]@^13也就是包含前后段落标记的、有任意个字符的、非空的段落;用圆括号将其括起来(^13[!^13]@^13),意思是将这一部分加以标识,这是我们标识的第一部分,下面替换为框中的\1代表的就是它!

 

 

 {n,}代表至少 n 个前一字符或表达式,那么{2,}当然就表示2个以上这样的段落(括号括起来的部分),注意,应该是完全相同的段落!注意这里的{2,}不可以用@来替代,如果用@的话,因为它也包括“一个”的情况,那么在执行的时候,所有的不重复的段落也会被它自己替换一遍,执行效率要大打折扣!

 题外话:正则表达式里要是有一个代码表示“两个或两个以上”的意思,该多好啊