利用正則表達式進行中文排版的實例教程
前言
中文排版是字處理的一個基本功能,目前有些文字排版軟件,例如“排版助手”等等,可以完成一些通用的中文排版功能,但是對于一些復雜的個性化排版功能就無法實現(xiàn),實際上,我們通過在一些常用的支持正則的代碼編輯軟件里,使用正則表達式,就可以完成很多復雜的排版功能,下面將舉一些常用的例子。
代碼編輯軟件可使用Notepad++或Editplus,兩者的正則表達式對于換行有一點點差別,一個用\r\n,另一個用\n。下面以Editplus為例,講述一下操作方法,先用Editplus打開一個中文文件,然后點“替換”,點擊“使用正則表達式”,然后在“查找項”和“替換項”里輸入以下字符串,即可實現(xiàn)特定的排版功能。
此外,在“替換”界面中點“常用項”,可以把經(jīng)常使用的規(guī)則保存為功能列表,這樣,使用某個功能的時候,直接調(diào)用即可獲取相關(guān)代碼。
〇、常見匹配類
匹配中文字符的正則表達式:[\u4e00-\u9fa5]
匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
匹配特殊字符 :((?=[\x21-\x7e]+)[^A-Za-z0-9])
匹配所有的半角空白字符:[ \f\r\t\n]
匹配隱藏字符:[\u0000-\u001F]
一、段落排版類
1、非段落換行排版(要求段落之間空一行)
查找項:([^\n])\n
替換項:\1
2、插入空行
查找項:\n
替換項:\n\n
3、刪除空行
查找項:^\s*\n
替換項:空
4、行首批量添加(替換項為2個空格時可實現(xiàn)首行縮進)
查找項:^
替換項:我是行首aaa
5、行尾批量添加
查找項:\n
替換項:bbb我是行尾\n
6、半角引號替換為全角引號
查找項:\"([^\"\']*)\"
替換項:“\1”
7、半角單引號替換全角
查找項:\'([^\"\']*)\'
替換項:‘\1’
8、固定寬度加硬回車(下例為寬度50)
查找項:(.{1,50})
替換項:\1\n
二、刪除特定字符串類
1、刪除行前空格
查找項:^[ \s]*
替換項:空
2、刪除行尾空格
查找項:[ \s]*$
替換項:空
3、刪除包含指定關(guān)鍵字的行
查找項:^.*(指定關(guān)鍵字).*$
替換項:空
4、刪除以指定關(guān)鍵字開頭的行
查找項:^(指定關(guān)鍵字)[^\n]+\n
替換項:空
5、刪除HTML注釋
查找項:<!--(.*?)-->
替換項:空
6、刪除HTML標簽
查找項:<[^>]+>
替換項:空
7、刪除HTML標簽內(nèi)的全部
查找項:<(.*)>.*<\/\1>|<(.*) \/>
替換項:空
三、中文漢字處理類
1、中文和英文之間加空格
查找項:([\u4e00-\u9fa5]+)([A-Za-z]+)
替換項:\1 \2
2、英文和中文之間加空格
查找項:([A-Za-z]+)([\u4e00-\u9fa5]+)
替換項:\1 \2
3、中文和數(shù)字之間加空格
查找項:([\u4e00-\u9fa5]+)([0-9]+)
替換項:\1 \2
4、數(shù)字和中文之間加空格
查找項:([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
四、章節(jié)處理類
1、序號變?yōu)檎鹿?jié)
查找項:\n([\u4e00-\u9fa5]{1,2})\n
替換項:\n第\1章\n
2、章節(jié)之間加換行
查找項:第(.*)章
替換項:\n第\1章
3、章節(jié)樣式替換
查找項:<p>(第.{1,5}章.*)</p>
替換項:<h1>\1</h1>
五、巧妙利用正則表達式排版
中文和英文之間加空格
([\u4e00-\u9fa5]+)([A-Za-z]+)
然后使用
$1 $2
中文和數(shù)字之間加空格
([0-9]+)([\u4e00-\u9fa5]+)
然后使用
$1 $2
一下替換
([\u4e00-\u9fa5]+)([A-Za-z]+)|([A-Za-z]+)([\u4e00-\u9fa5]+)|([0-9]+)([\u4e00-\u9fa5]+)|([\u4e00-\u9fa5]+)([0-9]+)
總結(jié)
到此這篇關(guān)于利用正則表達式進行中文排版的文章就介紹到這了,更多相關(guān)正則表達式中文排版內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用JavaScript實現(xiàn)全局替換,解決$等特殊符號的難題[
用JavaScript實現(xiàn)全局替換,解決$等特殊符號的難題[...2006-12-12