一本书如果没有目录总觉得没有安全感,读起来也不方便。往往我们下载的一些pdf是没目录的。PdgCntEditor是一个很好用轻量级的pdf目录编辑器。但是这些书的目录往往很多,手动编辑会很麻烦。所以我常常都会去搜索该书的目录(带有页码),一般豆瓣读书或者百度百科可以搜到。这个带页码的目录一般会有一个问题,就是页码前是空格而不是tab,这就导致目录无法正常使用。
以上是背景,有点罗嗦。总结就是我们要将目录中页码前面的空格替换为tab。此时正则表达式是一个很好的工具。首先是搜索部分,很简单就是" [0-9]+" (注意'['前面有个空格),这个表达式的意思是搜索一个字符串,这个字符串包含一个空格和多个数字('+'表示多个)。接着是替换部分,注意这里是部分替换,因为我们要保留这些数字,也就是页码。于是我去搜索正则表达式部分替换,搜到这篇文章《正则表达式的部分替换 $1~$99》,其中的关键是既然是部分替换,就要把表达式分成几个部分。
于是,我们得到最终答案,搜索部分:"( )([0-9]+)"(这里利用括号将表达式分为两个部分),替换部分:" $2"(注意$2前面是一个tab,这里是在编辑器打了一个tab然后复制,有些编辑器支持将tab写成'\t',但是PdgCntEditor不支持)。
总结:这篇文章全是废话,讲的案例也非常简单,那它的意义是什么呢?对于一个熟练掌握正则表达式的人来说,它确实一点用没有。但是对于新手,对于那些对正则敬而远之的人来说,它在述说一个道理,学正则是一个有用的且并不困难的事情。即使是最复杂的表示式,我们也可以将其拆成一个个简单的部分。
记一次正则表达式实战,给pdf加目录
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...