天天看點

editplus查找替換的正規表達式應用

表達式        說明

\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" 開頭的行.

contentnbsp;       其左邊的表達式被比對在一行的結尾. 例如 "econtentquot; 僅僅比對以 "e" 結尾的行.

()        影響表達式比對的順序,并且用作表達式的分組标記.

\        轉義字元. 如果你要使用 "\" 本身, 則應該使用 "\\".

正規表達式應用——删除空行   ^[ \t]*\n

表達式的分組使用()來标記. 表達式的分組可以被引用為 \0, \1, \2, \3, 等等. \0 表示被比對的所有字元串. \1 表示被比對的第一個分組, \2 表示第二個分組, 依此類推. 舉例如下.

原文        查找         替換                 結果

abc     (ab)(c)        \0-\1-\2        abc-ab-c

abc     a(b)(c)        \0-\1-\2        abc-b-c

abc     (a)b(c)        \0-\1-\2        abc-a-c

【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”

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

在替換對話框中,啟用“正規表達式”複選框

在查找内容裡面輸入“345contentrdquo;

這裡“contentrdquo;表示從行尾比對

如果從行首比對,可以用“^”來實作,不過 EditPlus 有另一個功能可以很簡單的删除行首的字元串

a. 選擇要操作的行

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

c. 在彈出對話框裡面輸入要清除的行首字元,确定

【4】正規表達式應用——替換帶有半角括号的多行

幾百個網頁中都有下面一段代碼:

\n

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

【5】正規表達式應用——删除空行

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

①、選擇“查找”菜單的“替換”指令,彈出文本替換對話框。選中“正規表達式”複選框,表明我們要在查找、替換中使用正規表達式。然後,選中“替換範圍”中的“目前檔案”,表明對目前檔案操作。

②、單擊“查找内容”組合框右側的按鈕,出現下拉菜單。

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

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

(1)選擇“從行首開始比對”,“查找内容”組合框中出現字元“^”,表示待查找字元串必須出現在文本中一行的行首。

(2)選擇“字元在範圍中”,那麼在“^”後會增加一對括号“[]”,目前插入點在括号中。括号在正規表達式中表示,文本中的字元比對括号中任意一個字元即符合查找條件。

(3)按一下空格鍵,添加空格符。空格符是空行的一個組成成分。

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

(5)移動光标,将目前插入點移到“]”之後,然後選擇“比對 0 次或更多”,該操作會添加星号字元“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出現0個或多個。

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

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