注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我想我知的博客

http://chenzaixiang.blog.163.com

 
 
 

日志

 
 

使用Editplus正则表达式排版疑难电子书一例  

2008-01-15 16:28:47|  分类: 手机电子书 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

看过本站《txt格式电子书排版经验浅谈》这篇文章的朋友,一定可以使用editplus+dreamedit的组合消除常见文本文件中的硬回车了。但是,有的时候却无法在消除硬回车的同时取得完美的排版,比如下面这个例子。

这是一个章回体的小说,文本文件使用EDITPLUS打开后如图:

鼠标滚轮可以缩放图片

假如直接使用dreamedit进行排版以消除硬回车,则会出现如下图的情况:
使用Editplus正则表达式排版疑难电子书一例 - 我想我知 - 我想我知的博客
鼠标滚轮可以缩放图片

我们可以看到,每一回的标题与内容都被连成了一个段落,显然阅读起来非常的不方便。这本小说有300多回,我们不可能一个个的去手动输入回车使标题与内容区分开来。

如果每一个标题后面要是能空一行就好了,这样消除硬回车的时候恰好会把空行消除,而使标题与内容在两个段落中。www.sjshu.com

回到EDITPLUS,仔细看了每一个标题,除了“第....回”这几个字有些规律外,后面的标题根本没有规律。。。。这可怎么办呢?如果仅仅通过“第....回”这几个字就能选取一行,我就有办法在行尾添加一个回车符号。试试EDITPLUS功能强大的正则表达式吧。。。。。

几经探索,终于找到了能够通过那几个字选取一整行标题的办法,并且使用替换功能在每一行标题后面添加一个回车,www.sjshu.com如图:
使用Editplus正则表达式排版疑难电子书一例 - 我想我知 - 我想我知的博客
鼠标滚轮可以缩放图片

查找内容框中的" ^ +(第).+(回).* "表示如下含意:www.sjshu.com
^”表示从行首开始匹配。
注意“^”和“+”之间还有个空格的,为什么?因为从图中可以看出“第...回”前面有若干个空格,这我们必须考虑进去才能匹配。
“+”表示匹配一次或更多,放在空格后面,表示“有一个或更多的空格”
(第)表示若干个空格后面有个“第”字
“.”表示任意一个字符。因为在“第”字后面是“一”“二”“一百零五”等具体章回数。可能是一个字,也可能是两个字。。。。于是我们又加了一个“+”,上面说到这代表匹配一次或更多,也就是若干个任意字符。
(回)自然代表“第”“若干个任意字符”后面紧跟着就是“回”字
至此类似“                     第十一回  乘风飞驶渡淮河  淡月无光劫敌寨”这样的标题中,我们已经能定位类似“                      第十一回 ”这部分文字了。www.sjshu.com

后面的字句完全没有规律,反而很好办,还是利用正则表达式的“.*”(事实上,这里的*也可以使用+来表示)来表示,其含意为"若干个任意字符",这样,含有"第多少回"的标题这一整行我们完全可以分别搜索到了.

我们的目的是在这些标题后面添加一个空行,空行在EDITPLUS的正则表达式中用"\n"来表示.而替换为框里还有一个"\0",这是正则表达式中"表示所有元素"的意思,也就是说,这个"\0"代表了"^ +(第).+(回).*
"这个表达式,那么已经很明显了,"\0\n"就表示"^ +(第).+(回).*
后面再加一个空行"www.sjshu.com

OK,整个使用正则表达式表示的搜索替换操作表述了这样的含意:查找所有以若干个空格开头的含有第...回字样并且紧跟着若干个文字这样一行内容,在其后面加一个空行!

替换操作完成之后,我们再回到DREAMEDIT软件中,对刚刚进行过编辑的文本文件进行排版,得到如下效果:
使用Editplus正则表达式排版疑难电子书一例 - 我想我知 - 我想我知的博客
鼠标滚轮可以缩放图片

至此,整个消除硬回车并完美排版的操作全部完成!www.sjshu.com

从中我们可以看到EDITPLUS正则表达式的强大功能,能够帮助我们实现各种效果,大家可以举一反三,在实际操作中获得更多的功能.有关更多排版知识请看我的另一篇文章:《txt格式电子书排版经验浅谈

www.sjshu.com端木忧伤原创

  评论这张
 
阅读(272)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018