EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

中西文之间批量添加空格

问题背景

在文档写作当中,常需要对中西文混合排版。Microsoft Word 等富文本编辑器一般带有混合排版优化功能,即使不手动添加空格,渲染过程中也会在中英文之间留出空白。下图是一个例子:

上图中数字“2023”和前后汉字之间没有空格,但是在渲染过程中留出空白。

对于没有该渲染功能的纯文本编辑器,需要编辑者手动添加空格。本文介绍使用正则表达式和搜索替换功能在文本编辑器文档编辑中批量添加中英文之间的空格。

在 VSCode 编辑器当中,对 markdown 文档进行格式化可以自动实现中西文之间添加空格。

替换原理

先中文后西文匹配串:

1
([㑇-﨩])([A-Za-z0-9%()])

先西文后中文匹配串:

1
([A-Za-z0-9%()])([㑇-﨩])

替换串:

1
$1 $2

替换效果

替换前效果:

1
蚂蚁老师从2021年开始教授《C语言程序设计基础》,是NJU最可爱的C语言老师。

替换后效果:

1
蚂蚁老师从 2021 年开始教授《C 语言程序设计基础》,是 NJU 最可爱的 C 语言老师。

附录