WORD批量查找并删除重复段落

来源:互联网 发布:淘宝网解除绑定2016 编辑:程序博客网 时间:2024/05/07 04:56
  有时候,需要整理的文档有大量重复的段落,如何批量清除呢?
  
  [准备工作] 
  
  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,}不可以用@来替代,如果用@的话,因为它也包括“一个”的情况,那么在执行的时候,所有的不重复的段落也会被它自己替换一遍,执行效率要大打折扣! 
  题外话:正则表达式里要是有一个代码表示“两个或两个以上”的意思,该多好啊
0 0