分享

WORD批量删除重复段落(改进方式)

 freelion 2012-04-26

WORD批量删除重复段落(改进方式)

小草

2009-06-08 12:50:29 来自: 小草(一百年前,男人说)

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


[准备工作]

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,}不可以用@来替代,如果用@的话,因为它也包括“一个”的情况,那么在执行的时候,所有的不重复的段落也会被它自己替换一遍,执行效率要大打折扣!
题外话:正则表达式里要是有一个代码表示“两个或两个以上”的意思,该多好啊!

另外,这段代码里,[!^13]这个思想我自己觉得用的比较好!电脑也好判断啊,呵呵!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多