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

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

转载于:https://juejin.im/post/5b0e48b36fb9a00a18514d4e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值