过年放假,还是在宅家里看书,结果发现,有些电子书网上整理的并不好,有很多没有用的空格,十分影响阅读效率,于是打算看看能不能解决一下。步骤也很简单,首先下载一个caliber,这个重度kindle使用者都知道,然后我们需要把mobi转换为epub格式,这个格式是可以编辑的,caliber有自带的caliber editor这样的编辑器,打开就好。

我们可以看到,红色的框框中有很多的空格,而这些空格使我们不需要的,这个时候就需要正则表达式了。我们注意到,一些地方的空格其实是有用的,比如css语法中,例如上面的p和class之间。

然后我们在编辑器的 搜索 中点击查找替换,然后输入如下正则表达式:

[^a-zA-Z=""><0-9]\s[^a-zA-Z=""><0-9]

同时把下面的模式改成 正则表达函数。

我们点击创建/编辑,然后建立一个自己的替换函数,函数的代码会python的同学应该很清楚了。

def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
    return match.group()[0] + match.group()[-1]

功能可以说是一目了然。

总体来说,通过正则表达式来定位到空余的空格,正则表达式中,考虑到有一些特殊的格式符号,所以要求空格左右侧都不能是数字和英文字母;然后通过替换函数,将正则表达式匹配到的部分的头尾作为替换的内容。

收工,看书去了。

mobi电子书中删除多余的空格相关推荐

  1. Python如何删除多余的空格与空行(有代码)

    ''' -- encoding: utf-8 -- @author:欢迎大家关注我的微信公众号:python数据分析与机器学习 @Time:不定期更新大数据分析.机器学习等方面的想法和知识 @Desc ...

  2. 【C语言】——删除多余的空格

    **思路:出现第一个空格后把count标记为1,只有count满足不为1的时候才能输出空格 在输出非字符后将count设为0,后续才能输出空格 ** /*时间:2020/08/14 目的:删除多余的空 ...

  3. java dom4j 去除空行_如何从XML文件中删除多余的空行?

    总之;我在XML文件中生成了很多空行,并且我正在寻找一种方法将它们作为一种倾斜文件的方式来删除它们.我怎样才能做到这一点 ?如何从XML文件中删除多余的空行? 有关详细说明,目前,我有这个XML文件: ...

  4. 编写一个函数,从一个字符串中去除多余的空格。

    这道题是<C和指针>上面的习题,出自于65页第7题,题目描述为: 编写一个函数,从一个字符串中去除多余的空格.函数的原型应该如下: void   deblank( char  string ...

  5. php 去除字符前空格,php中删除字符串前导空格的函数是什么?

    函数是:Ltrim().ltrim()函数的作用是从字符串左侧删除空格或其他预定义字符:其语法为"ltrim(string,charlist)":参数string表示要转换的字符串 ...

  6. EXCEL中删除多余的sheet 和 杀死Excel的进程

    '删除多余的sheet For Each workSheet As Excel.Worksheet In xlsWorkBook.WorksheetsIf workSheet.Name.Length ...

  7. 如何Super Vectorizer从Mac 上的图像中删除多余的颜色区域?

    如何去除多余的颜色区域? 步骤 1.在 Mac 上打开 Super Vectorizer,导入您的图像 步骤 2.切换到模式 2 步骤 3.减少颜色数量 步骤 4.增强边缘 步骤 5.删除小区域 步骤 ...

  8. word中删除多余的空白页

    转自:http://blog.eduol.cn/user1/%E8%B5%B5%E7%88%BD/archives/2007/290805.html 前两天评职称时填写一张word表格,发现本来一页的 ...

  9. Eclipse的switch workspace 选项中删除多余的workspace

    打开Eclipse后,选择功能菜单里的Windows->Preferences->,弹出对话框后,选择General->Startup and Shutdown->worksp ...

  10. Windows中删除多余的网络连接

    方法1: 在设备管理器-查看-显示隐藏的设备-网络适配器里面带#数字的卸载重启 方法2: 运行regedit,找到以下两个键 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft ...

最新文章

  1. 科普丨数据中心、云计算、大数据之间有什么区别和联系?
  2. mysql 启动安全模式_“ Word上次启动时失败,以安全模式启动Word ....”解决办法...
  3. 学习Java的十大理由,益处太多了
  4. css响应式布局_Web前端新手怎么入门 如何用CSS做响应式布局
  5. Bing.com在.NET Core 2.1上运行
  6. HDMI视频光端机常见故障问题及解决方法
  7. 2019 年,智能问答(Question Answering)的主要研究方向有哪些?
  8. arm linux head.s,arm-linux head.S 源代码分析
  9. N - Dragon Balls(并查集+深度的意义
  10. 中科院副研究员高林:面向可视媒体分析与合成的深度几何学习方法分享
  11. 谷歌浏览器:拷贝为CURL的小技巧
  12. 打开网页出现运行脚本错误的解决技巧
  13. java int stack_java中int算法的有趣现象
  14. 如何时刻保持在目标的正确轨道上
  15. Novernber Rain
  16. 九龙山风电场电气一次部分初步设计
  17. matlab中转置矩阵的特征值,矩阵乘以矩阵的转置运算的解析
  18. 王之泰201771010131《面向对象程序设计(java)》第十二周学习总结
  19. jQuery的文档处理
  20. FireStart教程:基于SharePoint的出差报销流程六

热门文章

  1. Python3爬虫系列:理论+实验+爬取妹子图实战
  2. 百度地图 绘制运动轨迹_国产免费高配版“谷歌地球”,地图分析用这款软件秒杀谷歌地球...
  3. magisk mask面具自动打卡
  4. 【原创】Magisk Root隐藏模块 Shamiko安装
  5. 颜色的前世今生4·孟塞尔色空间
  6. qqxml图片代码_QQxml卡片代码合集超大图、清明上河图、官方认证推荐等
  7. 基于MicroPython实现ESP32+SSD1306的小恐龙游戏
  8. STM8L152的LCD模块原理及驱动
  9. 球体重量在线计算机,材料重量计算器
  10. 【工具】聊聊文件传输工具,网页文件传输工具Snapdrop好用不