网站首页 > 技术文章 正文
下载了一批epub电子书压缩包,解包后发现书名后面都带有一个由-号加1到13位数字组成的无规律字串,如何快速去除书名中这些对读者毫无意义的字串呢?
(图1)
因为字串中的数字前后没有规律可循,字串长度也是不固定的,如果用更名软件的成批替换功能,不好构造“查找”表达式,即使是用更名软件的通配符功能也很难实现。后来还是想到一个解决方法,具体思路是:先将文件列表导出为一个TXT,然后对TXT文件中的文件名用EmEditor的正则表达式来替换消除,最后将载有更名后的文件列表的TXT文件再导入到更名软件中,执行TXT文本文件更名,实现对不限量不规则文件名无用尾巴的去除。具体实现方法如下。
1. 导出文件列表为List.TXT
用文件更名软件“拖把更名器”将要改名的所有epub电子书文件载入到其更名窗口,然后点击软件工具栏上的“导出当前文件列表”按钮
(图2)
将所有文件的列表导出为一个TXT文件(如:List.TXT)。
2. 用正则表达式消除字串
将上面得到的List.TXT载入文字编辑软件EmEditor中,用快捷键Ctrl+H启动“替换”窗口,在“查找”文本框中输入(-.*)(-.*$)字符串,在“替换为”文本框中输入\1字符串,然后选中下面的“使用正则表达式”复选框,去掉“仅在选定范围内”复选框的选择,最后单击“全部替换”按钮,完成文件名末尾无用字符串的成批消除替换。
(图3)
3. 引入替换后的TXT文件来更名
返回到“拖把更名器”窗口,点击工具栏上的“调用文本文件更名”按钮,调入刚才成批替换过内容的List.TXT文件,这时从“预览”一栏中马上可以看到将来更名后文件名的显示情况,确认没有问题后,按动快捷组合键Ctrl+E,实现成批文件的一次性更名操作。
这样,更名之后的所有文件名的无用尾巴都去除掉了。
(图4)
小提示:关于正则表达式的说明
在本例的“查找”文本框中用到了一个正则表达式(-.*)(-.*$),它是有两个部分组成的,每部分均由两组半角小括号构成,第一组(-.*)查找每个文件名中由-号打头的第一串字符,第二组(-.*$)则是查找每个文件名中由-号打头的最末一串字符。为何不只用后面一组字符表达式?因为如果只用后面一组,则会查出连同有用信息在内的字串内容,达不到我们的目的。只有使用这样两组的搭配,才能将有用的带-前缀的信息和无用的带-前缀的信息区别开来,你不妨亲自一试便知。两组小括号构成的字串分别暗含了两个编号,第一组为1号,第二组为2号。在“替换为”文本框中使用的\1表达式正是要保留查找出的第一串有用字符,没有引用第2串字符,目的也就是要丢掉第2串无用字符,正好达到我们的目的。
猜你喜欢
- 2024-12-03 137.Python——PySide6:QInputDialog输入对话框的创建与使用
- 2024-12-03 云中忆低代码之【开关】组件
- 2024-12-03 微信8.0.28正式更新!发现6个实用功能,朋友圈新增访问权限
- 2024-12-03 Word文档如何不显示回车符?让你的文档更美观
- 2024-12-03 「Excel技巧」恼人的数据透视表之怎么去掉(空白)
- 2024-12-03 随手写个接口测试工具,让领导瞧瞧我的能耐
- 2024-12-03 topjui easyui:combobox(下拉列表应用)
- 2024-12-03 学会这两招,PS换行不求人!轻松实现文本排版,小白也能秒变高手
- 2024-12-03 如何在Excel中使用斜线,并在表格的标题中使用单斜线或双斜线
- 2024-12-03 哇塞!这款PPT插件简直太OK了!PPT新手狂喜!网友:就服气它
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 532℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 495℃MySQL service启动脚本浅析(r12笔记第59天)
- 474℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 471℃启用MySQL查询缓存(mysql8.0查询缓存)
- 452℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 431℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 428℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)