notepad++正則表達式 字符串詳解

表達式 說明

/t 制表符.

/n 新行.

. 匹配任意字符.

| 匹配表達式左邊和右邊的字符. 例如, “ab|bc” 匹配 “ab” 或者 “bc”.

[] 匹配列表之中的任何單個字符. 例如, “[ab]” 匹配 “a” 或者 “b”. “[0-9]” 匹配任意數(shù)字.

[^] 匹配列表之外的任何單個字符. 例如, “[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非數(shù)字字符.

* 其左邊的字符被匹配任意次(0次,或者多次). 例如 “be*” 匹配 “b”, “be” 或者 “bee”.

+ 其左邊的字符被匹配至少一次(1次,或者多次). 例如 “be+” 匹配 “be” 或者 “bee” 但是不匹配 “b”.

? 其左邊的字符被匹配0次或者1次. 例如 “be?” 匹配 “b” 或者 “be” 但是不匹配 “bee”.

^ 其右邊的表達式被匹配在一行的開始. 例如 “^A” 僅僅匹配以 “A” 開頭的行.

” 僅僅匹配以 “e” 結(jié)尾的行.

() 影響表達式匹配的順序,并且用作表達式的分組標記.

/ 轉(zhuǎn)義字符. 如果你要使用 “/” 本身, 則應(yīng)該使用 “//”.

例子:

原始串

str[1]abc[991];

str[2]abc[992];

str[11]abc[993];

str[22]abc[994];

str[111]abc[995];

str[222]abc[996];

str[1111]abc[997];

str[2222]abc[999];

目標串:

abc[1];

abc[2];

abc[11];

abc[22];

abc[111];

abc[222];

abc[1111];

abc[2222];

處理:

查找串:str

abc

替換串:abc[/1]

【1】正則表達式應(yīng)用——替換指定內(nèi)容到行尾

原始文本如下面兩行

abc aaaaa

123 abc 444

希望每次遇到“abc”,則替換“abc”以及其后到行尾的內(nèi)容為“abc efg”

即上面的文本最終替換為:

abc efg

123 abc efg

解決:

① 在替換對話框,查找內(nèi)容里輸入“abc.*”

② 同時勾選“正則表達式”復(fù)選框,然后點擊“全部替換”按鈕

其中,符號的含義如下:

“.” =匹配任意字符

“*” =匹配0次或更多

注意:其實就是正則表達式替換,這里只是把一些曾經(jīng)提出的問題加以整理,單純從正則表達式本身來說,就可以引申出成千上萬種特例。

【2】正則表達式應(yīng)用——數(shù)字替換

希望把

asdadas123asdasdas456asdasdasd789asdasd

替換為:

asdadas[123]asdasdas[456]asdasdasd[789]asdasd

在替換對話框里面,勾選“正則表達式”復(fù)選框;

在查找內(nèi)容里面輸入“[0-9][0-9][0-9]”,不含引號

“替換為:”里面輸入“[/0/1/2]”,不含引號

范圍為你所操作的范圍,然后選擇替換即可。

實際上這也是正則表達式的使用特例,“[0-9]”表示匹配0~9之間的任何特例,同樣“[a-z]”就表示匹配a~z之間的任何特例

上面重復(fù)使用了“[0-9]”,表示連續(xù)出現(xiàn)的三個數(shù)字

“/0”代表第一個“[0-9]”對應(yīng)的原型,“/1”代表第二個“[0-9]”對應(yīng)的原型,依此類推

“[”、“]”為單純的字符,表示添加“[”或“]”,如果輸入“其它/0/1/2其它”,則替換結(jié)果為:

asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd

功能增強(by jiuk2k):

如果將查找內(nèi)容“[0-9][0-9][0-9]”改為“[0-9]*[0-9]”,對應(yīng)1 或 123 或 12345 或 …

大家根據(jù)需要定制

相關(guān)內(nèi)容還有很多,可以自己參考正則表達式的語法仔細研究一下

【3】正則表達式應(yīng)用——刪除每一行行尾的指定字符

因為這幾個字符在行中也是出現(xiàn)的,所以肯定不能用簡單的替換實現(xiàn)

比如

12345 1265345

2345

需要刪除每行末尾的“345”

這個也算正則表達式的用法,其實仔細看正則表達式應(yīng)該比較簡單,不過既然有這個問題提出,說明對正則表達式還得有個認識過程,解決方法如下

解決:

在替換對話框中,啟用“正則表達式”復(fù)選框

在查找內(nèi)容里面輸入“345”表示從行尾匹配

如果從行首匹配,可以用“^”來實現(xiàn),不過 EditPlus 有另一個功能可以很簡單的刪除行首的字符串

a. 選擇要操作的行

b. 編輯-格式-刪除行注釋

c. 在彈出對話框里面輸入要清除的行首字符,確定

【4】正則表達式應(yīng)用——替換帶有半角括號的多行

幾百個網(wǎng)頁中都有下面一段代碼:

/n

在替換對話框啟用“正則表達式”選項,這時就可以完成替換了

【5】正則表達式應(yīng)用——刪除空行

啟動EditPlus,打開待處理的文本類型文件。

①、選擇“查找”菜單的“替換”命令,彈出文本替換對話框。選中“正則表達式”復(fù)選框,表明我們要在查找、替換中使用正則表達式。然后,選中“替換范圍” 中的“當(dāng)前文件”,表明對當(dāng)前文件操作。

②、單擊“查找內(nèi)容”組合框右側(cè)的按鈕,出現(xiàn)下拉菜單。

③、下面的操作添加正則表達式,該表達式代表待查找的空行。(技巧提示:空行僅包括空格符、制表符、回車符,且必須以這三個符號之一作為一行的開頭,并且 以回車符結(jié)尾,查找空行的關(guān)鍵是構(gòu)造代表空行的正則表達式)。

直接在”查找”中輸入正則表達式“^[ /t]*/n”,注意/t前有空格符。

(1)選擇“從行首開始匹配”,“查找內(nèi)容”組合框中出現(xiàn)字符“^”,表示待查找字符串必須出現(xiàn)在文本中一行的行首。

(2)選擇“字符在范圍中”,那么在“^”后會增加一對括號“[]”,當(dāng)前插入點在括號中。括號在正則表達式中表示,文本中的字符匹配括號中任意一個字符 即符合查找條件。

(3)按一下空格鍵,添加空格符??崭穹强招械囊粋€組成成分。

(4)選擇“制表符”,添加代表制表符的“/t”。

(5)移動光標,將當(dāng)前插入點移到“]”之后,然后選擇“匹配 0 次或更多”,該操作會添加星號字符“*”。星號表示,其前面的括號“[]”內(nèi)的空格符或制表符,在一行中出現(xiàn)0個或多個。

(6)選擇“換行符”,插入“/n”,表示回車符。

④、“替換為”組合框保持空,表示刪除查找到的內(nèi)容。單擊“替換”按鈕逐個行刪除空行,或單擊“全部替換”按鈕刪除全部空行(注意:EditPlus有時 存在“全部替換”不能一次性完全刪除空行的問題,可能是程序BUG,需要多按幾次按鈕)。

1.在漢化的時候,是否經(jīng)常碰到這樣的語句需要翻譯:

Code:

“Error adding the post!”;

“Error adding the comment!”;

“Error adding the user!”;

如果有很多類似的文件一個一個翻譯顯然很累而且感覺很無聊。

其實可以這樣處理,在Editplus里面用 替換 功能,在替換對話框選中“正則表達式”復(fù)選框:

查找原文件:

Code:

“Error adding ([^!|"|;]*)

替換成:

Code:

“在增加/1時發(fā)生錯誤

這樣替換之后發(fā)生了什么?結(jié)果是:

Code:

“在增加the post時發(fā)生錯誤!”;

“在增加the comment時發(fā)生錯誤!”;

“在增加the user時發(fā)生錯誤!”;

ok,接下來你會怎么做?當(dāng)然再替換一次把the post、the comment、the user替換成你要翻譯的詞。得到最后的結(jié)果:

Code:

“在增加帖子時發(fā)生錯誤!”;

“在增加評論時發(fā)生錯誤!”;

“在增加用戶時發(fā)生錯誤!”;

2.要提取的單詞在中間,比如:

Code:

can not be deleted because

can not be added because

can not be updating because

可以用這種方式:

在Editplus里面用 替換 功能,在替換對話框選中“正則表達式”復(fù)選框:

查找原文件:

Code:

can not be ([^ ]*) because

替換成:

Code:

無法被/1因為

這樣替換之后發(fā)生了什么?結(jié)果是:

Code:

無法被deleted因為

無法被added因為

無法被updating因為

其余步驟如上。

在漢化量很大而且句式比較單調(diào)的情況下對效率的提高很明顯!

解釋一下:([^!|"|;]*) 的意思是 不等于 ! 和 ” 和 ; 中的任何一個,意思就是這3個字符之外的所有字符將被選中(替換區(qū)域);

/1 即被選中的替換區(qū)域所在的新位置(復(fù)制到這個新位置)。

3.經(jīng)常手工清理一行一行地刪除文本文件里面的空白行,其實可以交給Editplus更好的完成,在Editplus里面用替換功能,在替換對話框選中 “正則表達式”復(fù)選框:

查找原文件:

Code:

^[ /t]*/n

替換部分為空就可以刪除空白行了,執(zhí)行一下看看:)

abandon[2''b9nd2n]v.拋棄,放棄

abandonment[2''b9nd2nm2nt]n.放棄

abbreviation[2bri:vi''ei62n]n.縮寫

abeyance[2''bei2ns]n.緩辦,中止

abide[2''baid]v.遵守

ability[2''biliti]n.能力

able[''eibl]adj.有能力的,能干的

abnormal[9b''n0:m2l]adj.反常的,變態(tài)的

aboard[2''b0:d]adv.船(車)上

1.

查找: (^[a-zA-Z0-0/-]+)(

+)(.*)

替換: @@@@@”/1″,”/2″,”/3″,

效果:

@@@@@”abandon”,”[2''b9nd2n]“,”v.拋棄,放棄”,

@@@@@”abandonment”,”[2''b9nd2nm2nt]“,”n.放棄”,

@@@@@”abbreviation”,”[2bri:vi''ei62n]“,”n.縮寫”,

@@@@@”abeyance”,”[2''bei2ns]“,”n.緩辦,中止”,

@@@@@”abide”,”[2''baid]“,”v.遵守”,

@@@@@”ability”,”[2''biliti]“,”n.能力”,

@@@@@”able”,”[''eibl]“,”adj.有能力的,能干的”,

@@@@@”abnormal”,”[9b''n0:m2l]“,”adj.反常的,變態(tài)的”,

@@@@@”aboard”,”[2''b0:d]“,”adv.船(車)上”,

2.

查找: /n

替換:

注: 要次替換內(nèi)容為空

效果:

@@@@@”abandon”,”[2''b9nd2n]“,”v.拋棄,放棄 ”,@@@@@”abandonment”,”[2''b9nd2nm2nt]“,”n.放棄 ”,@@@@@”abbreviation”,”[2bri:vi''ei62n]“,”n.縮寫 ”,@@@@@”abeyance”,”[2''bei2ns]“,”n.緩辦,中止”,@@@@@”abide”,”[2''baid]“,”v.遵守 ”,@@@@@”ability”,”[2''biliti]“,”n.能力”,@@@@@”able”,”[''eibl]“,”adj.有能力的,能 干的 ”,@@@@@”abnormal”,”[9b''n0:m2l]“,”adj.反常的,變態(tài)的 ”,@@@@@”aboard”,”[2''b0:d]“,”adv.船(車)上”,@@@@@”abolish”,”[2''b0li6]“,”v.廢 除,取消”,@@@@@”abolition”,”[9b2''li62n]“,”n.廢除,取消”

3.

查找: @@@@@

替換: /n

效果:

“abandon”,”[2''b9nd2n]“,”v.拋棄,放棄”,

“abandonment”,”[2''b9nd2nm2nt]“,”n.放棄”,

“abbreviation”,”[2bri:vi''ei62n]“,”n.縮寫”,

“abeyance”,”[2''bei2ns]“,”n.緩辦,中止”,

“abide”,”[2''baid]“,”v.遵守”,

“ability”,”[2''biliti]“,”n.能力”,

“able”,”[''eibl]“,”adj.有能力的,能干的”,

“abnormal”,”[9b''n0:m2l]“,”adj.反常的,變態(tài)的”,

“aboard”,”[2''b0:d]“,”adv.船(車)上”,

“abolish”,”[2''b0li6]“,”v.廢除,取消”,

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容