人氣 36143°c

notepad++正則表達式(規則運算式)換行替換

Notepad++ 是本人最喜愛使用的文檔編輯程式,在近期編寫一套JS程序,需要大量替換某些字符串或特殊符號,在網上找來的資料,可以運用「正則表達式,另稱:規則運算式」功能,把前後多餘的代碼或中間的文字替換掉,並將內容直式(豎排)轉換為橫式(橫排)顯示等!!

以下的 notepad++ 正規表示式(正則表達式)是本人比較常用大量的「換行」或查找「替換」方法,為了方便自己,以免又忘記了,在此記錄一下。同時想共享給大家作為參考之用,若您也有另類的正規表示法,請在文章底部「留言」分享。

先由淺至深,一步一步來。

OK! 開始...

0. 請按鍵盤「CTRL+H」或在上方的導航,點擊「搜尋」欄位,在下拉選單,請按「取代」打開替換視窗。

1. 直式(豎排)內容轉換為橫式(橫排)顯示 請看圖片▼

方法一:

I. 在尋找內容(查找目標)中輸入:\r\n

II. 取代為(替換為):留空(不要輸入任何東西)

III. 搜尋模式:延伸

附加說明:尾部沒有空格

方法二:

請使用鼠標Highlight(全選)所有內容,然後按鍵盤「CTRL+J」或請手動按上方導航的「編輯」下拉選擇「行列處理」再選擇「標示區併行」功能。

附加說明:尾部含有空格

2. 橫式(橫排)內容變更為直式(豎排)顯示 請看圖片▼

方法一:

請首先在其中一個內容的頭或尾部,使用鼠標選取一個「空白」字符,然後開啟取代(替換)視窗。

I. 在尋找內容(查找目標)中輸入:空白字符或給牠一個空格

II. 取代為(替換為):\n

III. 搜尋模式:延伸

方法二:

例如:
橫向顯示:我們人心本善良是也

直向顯示:








I. 在尋找內容(查找目標)中輸入:(.)

II. 取代為(替換為):\1\n

III. 搜尋模式:正規表達式

3. 前後或前或後或頭尾位置,加上HTML標籤或特殊符號 請看圖片▼

例如:ifreesite.com 在前面或後面加上 <a href="...">ifreesite.com</a>

I. 在尋找內容(查找目標)中輸入:(.+)

II. 取代為(替換為):<a href="$1">$1</a>

III. 搜尋模式:規則運算式

附加說明: 如果有多個字符串需要匹配,使用多個小括號並通過「$1、$2、$3……」替換即可。或者自行嘗試不同的匹配方式,有不同的效果出現。

4. 刪除括號或符號內的中英文字或數字 請看圖片▼

方法一:

例如:tor(人心)tes 刪除中間的括號內的東西 tortes

I. 在尋找內容(查找目標)中輸入:(.)如有多個文字如此類推加上「點」為刪除一個字節

II. 取代為(替換為):留空(不要輸入任何東西)

III. 搜尋模式:規則運算式

附加說明: 必須全角符號(中文標點符號)才可,半角符號(英文標點符號)無效。

方法二:

例如:hi[人心566]okay 刪除或替換中間的括號內的東西 hiokay

I. 在尋找內容(查找目標)中輸入:\[.*\]

II. 取代為(替換為):留空或替換其他

III. 搜尋模式:規則運算式

方法三:

例如:sir[善良567]miss 刪除或替換中間的括號內的東西 sir[]miss

I. 在尋找內容(查找目標)中輸入:sir(.*)miss

II. 取代為(替換為):sir[]miss 或 sir[(.*)]miss

III. 搜尋模式:規則運算式

5. 刪除排序的數字或字母 (括號或符號內的數字也可) 請看圖片▼

例如:1. ifreesite.com 2. moonlol.com 不要前方的數字或字母 ifreesite.com moonlol.com

I. 在尋找內容(查找目標)中輸入:數字 [0-9] 或 [0-9]. / 字母 [ab] 或 [ab]. / 字母 [a-z] 或 [a-z].

II. 取代為(替換為):留空(不要輸入任何東西)

III. 搜尋模式:正則表達式

6. 遞增數字或順序數字 請看圖片▼

請按鍵盤「Alt+C」打開直行編輯(列編輯)模式,或請手動按上方導航的「編輯」下拉選擇「列模式編輯」。

在直行編輯視窗,點擊插入數字「初次數字」填"1",如不填由"0"開始,「增量」填"1",想在數字前方加上"0"勾選「齊頭補零」0 前綴。

方法一:

使用「插入數字」功能,ifreesite.com moonlol.com 在前方加上數字或字母排序 1. ifreesite.com 2. moonlol.com

方法二:

使用「插入文字」功能,在行列位置,插入多行內容。

方法三:

使用「插入數字」功能,在行列位置,插入序列數字。

7. 轉換大小寫字母 請看圖片▼

請使用鼠標Highlight 選取英文字母,然後按上方導航的「編輯」-->「轉換大小寫」或按快捷鍵,轉換小寫:「CTRL+U」,轉換大寫:「Ctrl+Shift+U

8. 替換或去除某個範圍的字符串 請看圖片▼

方法一:

例如:value="403" value="人心" 只要""符號內的文字或數字 403 人心

I. 在尋找內容(查找目標)中輸入:.*"(\d+)" 或 .*"(\w+)"

II. 取代為(替換為):$1

III. 搜尋模式:規則運算式

方法二:

例如:value="403" value="人心" 只需保留前面的 value

I. 在尋找內容(查找目標)中輸入:(.*)="(\d+)" 或 (.*)="(\w+)"

II. 取代為(替換為):$1

III. 搜尋模式:規則運算式

方法三:

例如:value="403" value="人心" 清除""符號內的文字或數字 value="" value=""

I. 在尋找內容(查找目標)中輸入:"(\d+)" 或 "(\w+)"

II. 取代為(替換為):""

III. 搜尋模式:規則運算式

附加說明: 如果有多個字符串需要匹配,使用多個小括號並通過「$1、$2、$3……」替換即可。或者自行嘗試不同的匹配方式,有不同的效果出現。

9. 取代並刪除包含指定字符串的行列

在使用取代功能,我們取代(替換)某一行列的文字或代碼,都會保留空行。

取代前:

取代後:

如果取代行列的物件後,也不想保留空白行。

比如要去掉所有含有"越美好越害怕得到"的行的操作

方法一:保留空行

I. 在尋找內容(查找目標)中輸入:^.*越美好越害怕得到.*$

II. 取代為(替換為):空

III. 搜尋模式:正則表達式

方法二:不保留空行

I. 在尋找內容(查找目標)中輸入:^.*越美好越害怕得到.*\r?\n

II. 取代為(替換為):空

III. 搜尋模式:規則運算式

附加說明:Notepad++的[全部替換]受[方向]約束,所以如果想"向下"全部替換,要把光標放到文首。

示例10:

0 -1 -2 -3 +3 +2 +1
+1 0 -1 -2 -3 +3 +2

替換成:

0,-1,-2,-3,+3,+2,+1
+1,0,-1,-2,-3,+3,+2

方法一 查找串:([A-Z0-9]+) 替換串:\1,

方法二 查找串:^([A-Z0-9]+) 替換串:\1,

示例11:

0,-1,-2,-3,+3,+2,+1
+1,0,-1,-2,-3,+3,+2

替換成:

0,-1,-2,-3,+3,+2,+1},{
+1,0,-1,-2,-3,+3,+2},{

方法一 查找串:(\w)$ 替換串:\1},{

方法二 查找串:^(.*)$ 替換串:\1},{

示例12:

123abcfg
abc
abcd

替換成:

123hello
hello
hello

方法-- 查找串:abc.*$ 替換串:hello

示例13:

123abcfg
abc
abcd

替換成:

123@abcfg@
@abc@
@abcd@

方法-- 查找串:(abc.*)$ 替換串:@\1@

示例14:

str[1]abc[991]
str[2]abc[992]
str[11]abc[993]
str[222]abc[996]

替換成

god[991]
god[992]
god[993]
god[996]

方法1 -- 查找串:str\[[0-9]+\]abc\[([0-9]+)\] 替換串:god[\1]

方法2 -- 查找串:str\[([0-9]+)\]abc\[([0-9]+)\] 替換串:god[\2]

示例15:

刪除所有空行

step1:a. 選擇正則表達式  b. 查找串:^[ \t]*$ 替換串:空

step2:a. 選擇擴展(\n,\r,\t,\0,\x...)  b. 查找串:\r\n\r\n 替換串:\r\n  注:多次點擊替換,直到沒有可替換的字串

step3:^[\s]*\n 或 ^(\s*)\r\n

Notepad++ 的列、區塊選取功能

Notepad ++ 可使用區塊選取的功能 (垂直選取特定寬度範圍的區塊)

列模式編輯有兩種方式:
1. 請先按住『ALT』鍵後,然後用『滑鼠左鍵』來拖曳要選取的範圍
ALT + Left Mouse

2. 同時按住『ALT』+『SHIFT』鍵,使用鍵盤『方向鍵』來拉出要選取的範圍
ALT + Shift + Arrow keys

垂直的區塊選取文字,如下圖所示 ▼

Notepad++ 正則表達式語法詳解:

\   轉義字符  如:要使用“\”本身,則應該使用“\\

\t  Tab製表符 注:擴展和正則表達式都支持

\r  回車符CR   注:擴展支持,正則表達式不支持

\n  換行符LF   注:擴展支持,正則表達式不支持

.  匹配任意字符

其右邊的表達式被匹配在行首。如:^A匹配以“A”開頭的行

其左邊的表達式被匹配在行尾。如:e$匹配以“e”結尾的行

|  或運算符,匹配表達式左邊和右邊的字符串。如: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”

() 影響表達式匹配的順序(類似C++的小括號會影響表達式運算順序),並且用作表達式的分組標記(標記從1開始)注:看上文的示例

\d 匹配一個數字字符。等價於:[0-9]

\D \d 取反,匹配一個非數字字符。等價於:[^0-9]

\s 匹配任意單個空白字符:包括空格、製表符等(注:不包括換車符和換行符)。等價於:[ \t]

\S  \s 取反的任意單個字符。

\w 匹配包括下劃線的任意單個字符。等價於:[A-Za-z0-9_]

\W \w 取反的任意單個字符。等價於:[^A-Za-z0-9_]

官方說明: Notepad++ Regular Expressions

結語: 不僅Notepad++,Editplus、DreamWeaver等大多數編輯器同樣支持正則表達式,這些編輯器同樣都可以批量替換指定文件夾中的文件、已打開的文件等,相當強大。對於量大的替換任務,多花點時間了解一下如何應用好正則替換功能,可以為你在工作中結省大量的時間。

相關文章:
1. notepad++刪除重複行或清除重覆記錄
2. 開啟notepad++文件比對工具
標籤: