notepad++使用正則表達式的查找替換

使用正則表達式能夠很好地完成不少繁瑣耗時的工做,如下抄錄editplus正則表達式的使用,一樣適用於notepad++:
表達式 說明
\t 製表符.
\n 新行.
. 匹配任意字符.
| 匹配表達式左邊和右邊的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".
[] 匹配列表之中的任何單個字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]" 匹配任意數字.
[^] 匹配列表以外的任何單個字符. 例如, "[^ab]" 匹配 "a" 和 "b" 之外的字符. "[^0-9]" 匹配任意非數字字符.
* 其左邊的字符被匹配任意次(0次,或者屢次). 例如 "be*" 匹配 "b", "be" 或者 "bee".
+ 其左邊的字符被匹配至少一次(1次,或者屢次). 例如 "be+" 匹配 "be" 或者 "bee" 可是不匹配 "b".
? 其左邊的字符被匹配0次或者1次. 例如 "be?" 匹配 "b" 或者 "be" 可是不匹配 "bee".
^ 其右邊的表達式被匹配在一行的開始. 例如 "^A" 僅僅匹配以 "A" 開頭的行.
$ 其左邊的表達式被匹配在一行的結尾. 例如 "e$" 僅僅匹配以 "e" 結尾的行.
() 影響表達式匹配的順序,而且用做表達式的分組標記.
\ 轉義字符. 若是你要使用 "" 自己, 則應該使用 "\".

例子:
原始串
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\[([0-9]+)\]abc\[[0-9]+\]
替換串:abc[\1]

【1】正則表達式應用——替換指定內容到行尾
原始文本以下面兩行
abc aaaaa
123 abc 444

但願每次遇到「abc」,則替換「abc」以及其後到行尾的內容爲「abc efg」
即上面的文本最終替換爲:
abc efg
123 abc efg

解決:
① 在替換對話框,查找內容裏輸入「abc.*」
② 同時勾選「正則表達式」複選框,而後點擊「所有替換」按鈕
其中,符號的含義以下:
「.」 =匹配任意字符
「*」 =匹配0次或更多

注意:其實就是正則表達式替換,這裏只是把一些曾經提出的問題加以整理,單純從正則表達式自己來講,就能夠引伸出成千上萬種特例。

【2】正則表達式應用——數字替換
但願把
asdadas123asdasdas456asdasdasd789asdasd
替換爲:
asdadas[123]asdasdas[456]asdasdasd[789]asdasd

在替換對話框裏面,勾選「正則表達式」複選框;
在查找內容裏面輸入「[0-9][0-9][0-9]」,不含引號
「替換爲:」裏面輸入「[\0\1\2]」,不含引號
範圍爲你所操做的範圍,而後選擇替換便可。

實際上這也是正則表達式的使用特例,「[0-9]」表示匹配0~9之間的任何特例,一樣「[a-z]」就表示匹配a~z之間的任何特例
上面重複使用了「[0-9]」,表示連續出現的三個數字
「\0」表明第一個「[0-9]」對應的原型,「\1」表明第二個「[0-9]」對應的原型,依此類推
「[」、「]」爲單純的字符,表示添加「[」或「]」,若是輸入「其它\0\1\2其它」,則替換結果爲:

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

功能加強(by jiuk2k):
若是將查找內容「[0-9][0-9][0-9]」改成「[0-9]*[0-9]」,對應1 或 123 或 12345 或 …
你們根據須要定製

相關內容還有不少,能夠本身參考正則表達式的語法仔細研究一下

【3】正則表達式應用——刪除每一行行尾的指定字符
由於這幾個字符在行中也是出現的,因此確定不能用簡單的替換實現
好比
12345 1265345
2345
須要刪除每行末尾的「345」
這個也算正則表達式的用法,其實仔細看正則表達式應該比較簡單,不過既然有這個問題提出,說明對正則表達式還得有個認識過程,解決方法以下
解決:
在替換對話框中,啓用「正則表達式」複選框
在查找內容裏面輸入「345$」
這裏「$」表示從行尾匹配

若是從行首匹配,能夠用「^」來實現,不過 EditPlus 有另外一個功能能夠很簡單的刪除行首的字符串
a. 選擇要操做的行
b. 編輯-格式-刪除行註釋
c. 在彈出對話框裏面輸入要清除的行首字符,肯定

【4】正則表達式應用——替換帶有半角括號的多行
幾百個網頁中都有下面一段代碼:
\n
在替換對話框啓用「正則表達式」選項,這時就能夠完成替換了

【5】正則表達式應用——刪除空行
啓動EditPlus,打開待處理的文本類型文件。
①、選擇「查找」菜單的「替換」命令,彈出文本替換對話框。選中「正則表達式」複選框,代表咱們要在查找、替換中使用正則表達式。而後,選中「替換範圍」 中的「當前文件」,代表對當前文件操做。
②、單擊「查找內容」組合框右側的按鈕,出現下拉菜單。
③、下面的操做添加正則表達式,該表達式表明待查找的空行。(技巧提示:空行僅包括空格符、製表符、回車符,且必須以這三個符號之一做爲一行的開頭,而且 以回車符結尾,查找空行的關鍵是構造表明空行的正則表達式)。
直接在」查找」中輸入正則表達式「^[ \t]*\n」,注意\t前有空格符。
(1)選擇「從行首開始匹配」,「查找內容」組合框中出現字符「^」,表示待查找字符串必須出如今文本中一行的行首。
(2)選擇「字符在範圍中」,那麼在「^」後會增長一對括號「[]」,當前插入點在括號中。括號在正則表達式中表示,文本中的字符匹配括號中任意一個字符 即符合查找條件。
(3)按一下空格鍵,添加空格符。空格符是空行的一個組成成分。
(4)選擇「製表符」,添加表明製表符的「\t」。
(5)移動光標,將當前插入點移到「]」以後,而後選擇「匹配 0 次或更多」,該操做會添加星號字符「*」。星號表示,其前面的括號「[]」內的空格符或製表符,在一行中出現0個或多個。
(6)選擇「換行符」,插入「\n」,表示回車符。
④、「替換爲」組合框保持空,表示刪除查找到的內容。單擊「替換」按鈕逐個行刪除空行,或單擊「所有替換」按鈕刪除所有空行(注意:EditPlus有時 存在「所有替換」不能一次性徹底刪除空行的問題,多是程序BUG,須要多按幾回按鈕)。

1.在漢化的時候,是否常常碰到這樣的語句須要翻譯:

Code:
「Error adding the post!」;
「Error adding the comment!」;
「Error adding the user!」;

若是有不少相似的文件一個一個翻譯顯然很累並且感受很無聊。

其實能夠這樣處理,在Editplus裏面用 替換 功能,在替換對話框選中「正則表達式」複選框:
查找原文件:

Code:
「Error adding ([^!|"|;]*)

替換成:

Code:
「在增長\1時發生錯誤

這樣替換以後發生了什麼?結果是:

Code:
「在增長the post時發生錯誤!」;
「在增長the comment時發生錯誤!」;
「在增長the user時發生錯誤!」;

ok,接下來你會怎麼作?固然再替換一次把the post、the comment、the user替換成你要翻譯的詞。獲得最後的結果:

Code:
「在增長帖子時發生錯誤!」;
「在增長評論時發生錯誤!」;
「在增長用戶時發生錯誤!」;

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

Code:
can not be deleted because
can not be added because
can not be updating because

能夠用這種方式:
在Editplus裏面用 替換 功能,在替換對話框選中「正則表達式」複選框:
查找原文件:

Code:
can not be ([^ ]*) because

替換成:

Code:
沒法被\1由於

這樣替換以後發生了什麼?結果是:

Code:
沒法被deleted由於
沒法被added由於
沒法被updating由於

其他步驟如上。

在漢化量很大並且句式比較單調的狀況下對效率的提升很明顯!

解釋一下:([^!|"|;]*) 的意思是 不等於 ! 和 」 和 ; 中的任何一個,意思就是這3個字符以外的全部字符將被選中(替換區域);
\1 即被選中的替換區域所在的新位置(複製到這個新位置)。

3.常常手工清理一行一行地刪除文本文件裏面的空白行,其實能夠交給Editplus更好的完成,在Editplus裏面用替換功能,在替換對話框選中 「正則表達式」複選框:
查找原文件:

Code:
^[ \t]*\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.反常的,變態的
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.反常的,變態的」,
@@@@@」aboard」,」[2''b0:d]「,」adv.船(車)上」,

2.
查找: \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.反常的,變態的 」,@@@@@」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.反常的,變態的」,
「aboard」,」[2''b0:d]「,」adv.船(車)上」,
「abolish」,」[2''b0li6]「,」v.廢除,取消」,
原文地址:http://www.cnblogs.com/answer/archive/2010/03/29/1699751.html

如今我手上有一堆漢字,是中國34個省市自治區(一直據說是36個,結果查詢一下是34個),以下:
北京市
天津市
上海市
...
想改爲這樣:
INSERT INTO province_info(province_name) VALUES ('北京市');
INSERT INTO province_info(province_name) VALUES ('天津市');
INSERT INTO province_info(province_name) VALUES ('上海市');
...
就是要把"北京市"放到下面一行語句單引號之間
INSERT INTO province_info(province_name) VALUES ('');
可使用替換,選擇支持正則表達式,查找目標爲
(.*)
替換爲
INSERT INTO province_info(province_name) VALUES ('\1');
查找目標.*便可查找到目標,加上()爲得是替換的時候用 \1 來使用
這樣就能夠進行快速地替換了。html

本文首發度外網絡官方博客,轉載請註明出處:http://www.duwaiweb.com/blog/20121008_4fb5abb5-b3ea-47b4-b461-414621c76f10.htmljava

論文匯隸屬於度外網絡旗下網站,專一java畢業設計服務,詳情請訪問:http://www.lunwenhui.com/java/page_2.htmlweb

相關文章
相關標籤/搜索