很多编辑只会用Word。有些编辑也会用WPS,但他以为自己是在用Word;如果给他装Libreoffice Writer,他会稍稍不适应,但很快也能用起来。

如果一个编辑希望稍微进一步学点“电脑知识”,我推荐学正则表达式。再搭配使用高效的文本处理工具,比如

  • TextPro(除非特别说明,文中例子都是TextPro环境中的),
  • EmEditor,
  • VSCode,
  • PowerGrep,
  • Libreoffice Writer,

以及一些文档管理工具,比如

  • Total Commander,
  • Everything,

那你就可以说是编辑界的极客了。

据说中华书局的很多青年编辑都会正则表达式,并自称为正则青年。其实每个人都能学会。

跟很多编辑同事、朋友讲过这个意思(最近还许诺开一个在线的Python入门课),说要给他们讲课,一直没有实行。这个帖子就是为讲课预备的,积累一些实际用例。

会不断更新。也可能很久不更新。

“正则表达式”什么意思?

正则表达式(regular expression)就是规则表达式,可以用来表示多个符合此规则的字符串。比如\d\d\d表示连续的3个数字,如125、121、254等等。

他可以用来查找文本中符合规则的所有字符串,还可以按一定的规则进行替换;也可以用来查找文件名符合规则的所有文件,还可以按一定规则更改文件名、移动位置;等等。

正则表达式只是一种约定,在不同软件、编程语言中的语法规则、使用方式、功能是不同的。所有,学正则表达式一般是配合某些软件、编程语言来学习。文字工作者可以配合引言中讲到的软件来学习、使用。

学正则该从哪里下手

使用汉字的文字工作者,最好从TextPro开始。TextPro是中华佛典宝库网站开发的,是用来整理佛经的文本处理工具。它的正则,对汉字有专门的设计,比如有专门的字符集可以方便地区分汉字和汉字中的标点、数字、大写数字、天干地支用字、拼音用字符、注音符号,等等;它还能处理批量正则替换表(一般的软件都没有这一功能,或者没它方便);还带有一个专门的正则帮助文件,清晰,简明,有示例,相当于一个教程,用它学习入门就可以。

查找AABB式的词语

【查找】(\c)\1(\c)\2

\c代表一个汉字。()代表捕获其间的内容,以备引用,\1即是引用第一个捕获;那么(\c)\1就表示两个重复的汉字。

如果你想把这些词语(或所在行)收集到一个文件中,TextPro的“编辑”菜单中有两个现成的功能:“复制所有查找结果”和“复制所有查找结果”。

删除重复行

可以用正则处理(参见下面的思路),但一般使用软件现成的功能。EmEditor、TextPro,甚至excel都有这样的功能。

可以像Excel那样,某一列相同的很多行,只保留一行吗?

用EmEditor跨行正则替换。先按行排序,把有相同值的行都排到一起,然后

【查找】^((.*?)\t.*)\n\2\t.*$
【替换】\1

其实,EmEditor中现成有这个功能:编辑.高级.删除/把重复行作为书签

跨行处理

有些工具可以跨行使用正则查找、替换,比如EmEditor、vscode、Libreoffice Writer(要安装插件altsearch)。 不能跨行处理的软件,可以把所有行合并成一行后再处理。——用一些文本中不可能有的符号组合标记分行的位置,比如@@@@,处理完后还可能恢复分行。


Pygame Zero文档的思维导图和入门实例

2019-11-23 周六 by 黄复雄.

我认为Python + Pygame Zero + Thonny是最好的少儿编程入门技术路线。今天把Pygame Zero v1.2的文档,结合源码分析,整理成思维导图和入门实例,看起来真的很简单。又梳理API的详细用法,整理成一个“一文通”的示例。

read...

Python口头禅

2019-05-15 周三 by Tim Peters. 黄复雄.

《Python之禅》是2004年的Python改进提案。禅诗、偈颂的形式。

read...

小工具:分割文本文件

2018-12-15 周六 by 黄复雄.

如果你想以特定格式的行(用正则表达式表示)为界,把一批文本文件分割成小片段,比如每章节或每卷一个文件,可以使用下面的Python脚本。

read...

Audition技巧:半自动分切音频

2018-12-14 周五 by 黄复雄.

在做电子书时,我需要把几百个生字朗读音频逐字分切开,把课文朗读音频逐句分切成开;或者获取每个分切位置的时间标签。总之是根据停顿静音进行分切的。此类要求可以通过Audition的“诊断”功能实现。

read...

Audition技巧:使两段不同环境的录音协调一致

2018-12-14 周五 by 黄复雄.

在修补音频时,有时修补材料的录音环境有所改变,或者语音演播人改变了。如果变化不大,可以通过Audition分析、比较频率,然后根据差异调整均衡,使修补材料的音色更接近要修补的音频。调整后截取片段用于修补,能更为协调。

read...

小工具:从多文件中收集字符串

2018-12-12 周三 by 黄复雄.

如果你想从很多文本文件中把一定格式的字符串收集在一起,可以使用下面的Python脚本。

read...

奇技淫巧志

2018-11-07 周三 by 黄复雄.

本人琢磨教育学习技术问题,学习数字技术和尝试开发的日志。在这里写出来,有一点隐秘舞台的气氛,是默坐出神和盲动入迷之间的左顾右盼。

read...

静态网站生成器Pelican学习笔记

2018-10-14 周日 by 黄复雄.

不写是不行的。写微信、微博像在村头赤身裸体,彼此都尴尬。写博客是无中心的世界里守株待兔,带点暧昧情绪。尝试了几种静态文件生成器,基于Python语言的Pelican最简单、亲切。这是学习pelican 文档时随手所记的,备查。

read...

常用/备用软件、语言和框架

2011-11-11 周五 by 黄复雄.

记性不好,这是备忘录:本人曾经常用,或者正在使用,或者有意将来使用的的软件、语言和框架。

read...
Fork me on GitHub