如何批量添加中文和英文數字之間的空格?用正則表達式吧


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 鏈接,你將看到我采用這一技巧對自己的編程學習筆記所作出的批量修改。——是的,這么大量的修改,只需一分鍾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM