如何批量添加中文和英文数字之间的空格?用正则表达式吧

1、中文与英文数字混合使用,排版有规范

写作中,我们经常遇到以下中文与英文、数字混用的情况。

我自学python编程,是在xue.cn上进行的。时耗方面,基础功仅需50多小时,加上很多实战,包括初步运用pandas和爬虫处理业务需求,加在一起也才200多小时而已。

其实,中文和数字、英文之间有一个空格会更美观。

我自学 python 编程,是在 xue.cn 上进行的。时耗方面,基础功仅需 50 多小时,加上很多实战,包括初步运用 pandas 和爬虫处理业务需求,加在一起也才 200 多小时而已。

但我们可能尚未养成这样的输入习惯,以至于要么全部没有空格,要么部分加了空格,部分没有。当然您可以不在乎这个文本规范。对于那些在意这个文本规范的人,想要规范格式,要么人工逐项修改,偶尔写写短文时这么操作貌似并不麻烦。但日积月累,这也将是一项不菲的时间开销。

要么,可以试试用正则匹配批量处理。——正是我这篇笔记想要分享的。你无须懂编程,也可使用特定工具快速完成批量添加中文和英文数字之间的空格。

我掌握这个技能,最初并非源于我个人写作排版,而是近日处理很多文字内容编辑时的一个刚需。掌握这个技能,帮我显著提高了工作效率,把重复性肌肉劳动大幅度降低。

2、正则表达式省掉千次万次机械操作

我的电脑中可以没有微软或金山的任何办公软件,但不可以没有 vscode 和 jupyter lab。vscode 不仅可以用于写代码,还可用于写文章。工作中需基于 github 协作时,我也采用 vscode 操作。

在 vscode 中存在以下搜索页签,展开具有以下选项:

image

第一行 search 填入所应匹配的样式。搜索支持三种模式。普通模式可直接复制粘贴你想要的样式,即便它有换行也是 OK 的。——在常见的办公软件中通常不支持复制粘贴换行,这足见 vscode 的强大实用。

image

想要搜索任意中文和数字或英文字母的组合,需要用到以下正则表达式,并启动正则匹配搜索模式:

  • 中文在左,数字或英文字母在右 ([\u4e00-\u9fa5]+)([\da-zA-Z]+)
  • 数字或英文字母在左,中文在右 ([\da-zA-Z]+)([\u4e00-\u9fa5]+)

然后 replace 行填写 $1 $2用于定义格式。

image

如果文件非常多,想要对指定文件范围内实施,可以在第 3、4 行分别定义文件范围,所支持的语法当然也是正则表达式啦。

vscode 非常棒的一点在于,此时我已经可以预览修改后的效果,待确认无误后,再点击执行全部替换即可。

回到最初的需求,想要在中文紧挨着英文数字之间增加空格,分别处理中文在左、中文在右两个情况即可完成。是不是很简单呢?

3、背后的原理?10 分钟系统理解正则表达式

这背后的知识点,就是正则表达式。——这并非某种编程语言所特有的,而是几乎所有的编程语言都支持的一种处理。它采用了一些字符构成的语法来描述规则,然后便于对文本实施搜索、捕获、替换等操作。

如果你想要对正则表达式来个 10 分钟系统了解,可访问 xue.cn 以游客模式直接阅读《自学是门手艺》的第 3 章“3.2.4 正则表达式”即可。

这个 github 链接,你将看到我采用这一技巧对自己的编程学习笔记所作出的批量修改。——是的,这么大量的修改,只需一分钟。

posted on 2019-11-27 20:11  刘娟娟PRESSone  阅读(2046)  评论(0编辑  收藏  举报