记一次正则表达式实战,给pdf加目录

       一本书如果没有目录总觉得没有安全感,读起来也不方便。往往我们下载的一些pdf是没目录的。PdgCntEditor是一个很好用轻量级的pdf目录编辑器。但是这些书的目录往往很多,手动编辑会很麻烦。所以我常常都会去搜索该书的目录(带有页码),一般豆瓣读书或者百度百科可以搜到。这个带页码的目录一般会有一个问题,就是页码前是空格而不是tab,这就导致目录无法正常使用。
       以上是背景,有点罗嗦。总结就是我们要将目录中页码前面的空格替换为tab。此时正则表达式是一个很好的工具。首先是搜索部分,很简单就是" [0-9]+" (注意'['前面有个空格),这个表达式的意思是搜索一个字符串,这个字符串包含一个空格和多个数字('+'表示多个)。接着是替换部分,注意这里是部分替换,因为我们要保留这些数字,也就是页码。于是我去搜索正则表达式部分替换,搜到这篇文章《正则表达式的部分替换 $1~$99》,其中的关键是既然是部分替换,就要把表达式分成几个部分。
       于是,我们得到最终答案,搜索部分:"( )([0-9]+)"(这里利用括号将表达式分为两个部分),替换部分:" $2"(注意$2前面是一个tab,这里是在编辑器打了一个tab然后复制,有些编辑器支持将tab写成'\t',但是PdgCntEditor不支持)。
       总结:这篇文章全是废话,讲的案例也非常简单,那它的意义是什么呢?对于一个熟练掌握正则表达式的人来说,它确实一点用没有。但是对于新手,对于那些对正则敬而远之的人来说,它在述说一个道理,学正则是一个有用的且并不困难的事情。即使是最复杂的表示式,我们也可以将其拆成一个个简单的部分。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容