首頁 > 軟體

利用正規表示式進行中文排版的範例教學

2022-02-15 13:02:36

前言

中文排版是字處理的一個基本功能,目前有些文字排版軟體,例如“排版助手”等等,可以完成一些通用的中文排版功能,但是對於一些複雜的個性化排版功能就無法實現,實際上,我們通過在一些常用的支援正則的程式碼編輯軟體裡,使用正規表示式,就可以完成很多複雜的排版功能,下面將舉一些常用的例子。

程式碼編輯軟體可使用Notepad++或Editplus,兩者的正規表示式對於換行有一點點差別,一個用rn,另一個用n。下面以Editplus為例,講述一下操作方法,先用Editplus開啟一箇中文件案,然後點“替換”,點選“使用正規表示式”,然後在“查詢項”和“替換項”裡輸入以下字串,即可實現特定的排版功能。

此外,在“替換”介面中點“常用項”,可以把經常使用的規則儲存為功能列表,這樣,使用某個功能的時候,直接呼叫即可獲取相關程式碼。

〇、常見匹配類

匹配中文字元的正規表示式:[u4e00-u9fa5]

匹配雙位元組字元(包括漢字在內):[^x00-xff]

匹配特殊字元 :((?=[x21-x7e]+)[^A-Za-z0-9])

匹配所有的半形空白字元:[ frtn]

匹配隱藏字元:[u0000-u001F]

一、段落排版類

1、非段落換行排版(要求段落之間空一行)

查詢項:([^n])n

替換項:1

2、插入空行

查詢項:n

替換項:nn

3、刪除空行

查詢項:^s*n

替換項:空

4、行首批次新增(替換項為2個空格時可實現首行縮排)

查詢項:^

替換項:我是行首aaa

5、行尾批次新增

查詢項:n

替換項:bbb我是行尾n

6、半形引號替換為全形引號

查詢項:"([^"']*)"

替換項:“1”

7、半形單引號替換全形

查詢項:'([^"']*)'

替換項:‘1’

8、固定寬度加硬回車(下例為寬度50)

查詢項:(.{1,50})

替換項:1n

二、刪除特定字串類

1、刪除行前空格

查詢項:^[ s]*

替換項:空

2、刪除行尾空格

查詢項:[ s]*$

替換項:空

3、刪除包含指定關鍵字的行

查詢項:^.*(指定關鍵字).*$

替換項:空

4、刪除以指定關鍵字開頭的行

查詢項:^(指定關鍵字)[^n]+n

替換項:空

5、刪除HTML註釋

查詢項:<!--(.*?)-->

替換項:空

6、刪除HTML標籤

查詢項:<[^>]+>

替換項:空

7、刪除HTML標籤內的全部

查詢項:<(.*)>.*</1>|<(.*) />

替換項:空

三、中文漢字處理類

1、中文和英文之間加空格

查詢項:([u4e00-u9fa5]+)([A-Za-z]+)

替換項:1 2

2、英文和中文之間加空格

查詢項:([A-Za-z]+)([u4e00-u9fa5]+)

替換項:1 2

3、中文和數位之間加空格

查詢項:([u4e00-u9fa5]+)([0-9]+)

替換項:1 2

4、數位和中文之間加空格

查詢項:([0-9]+)([u4e00-u9fa5]+)

替換項:1 2

5、上述替換整合

查詢項:([u4e00-u9fa5]+)([A-Za-z]+)|([A-Za-z]+)([u4e00-u9fa5]+)|([0-9]+)([u4e00-u9fa5]+)|([u4e00-u9fa5]+)([0-9]+)

6、刪除硬回車

查詢項:([0-9]+)([u4e00-u9fa5]+)

替換項:1 2

四、章節處理類

1、序號變為章節

查詢項:n([u4e00-u9fa5]{1,2})n

替換項:n第1章n

2、章節之間加換行

查詢項:第(.*)章

替換項:n第1章

3、章節樣式替換

查詢項:<p>(第.{1,5}章.*)</p>

替換項:<h1>1</h1>

五、巧妙利用正規表示式排版

中文和英文之間加空格

([u4e00-u9fa5]+)([A-Za-z]+)

然後使用

$1 $2

中文和數位之間加空格

([0-9]+)([u4e00-u9fa5]+)

然後使用

$1 $2

一下替換

([u4e00-u9fa5]+)([A-Za-z]+)|([A-Za-z]+)([u4e00-u9fa5]+)|([0-9]+)([u4e00-u9fa5]+)|([u4e00-u9fa5]+)([0-9]+)

總結

到此這篇關於利用正規表示式進行中文排版的文章就介紹到這了,更多相關正規表示式中文排版內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com