1. 程式人生 > 實用技巧 >Notepad++使用正則表示式快速刪除註釋

Notepad++使用正則表示式快速刪除註釋

摘要: Notepad++使用正則表示式快速刪除註釋:單行註釋,多行註釋,html註釋。

運用Notepad++中的替換功能正則表示式匹配可以快速刪除大量註釋

刪除的具體步驟如下:

1.開啟Notepad++,按Ctrl + H 開啟替換框

2.點選如圖按鈕切換到使用正則表示式匹配

3.輸入正則表示式,選擇全部替換

下面就分享一下常用的幾種註釋方式的正則表示式

單行註釋

特徵:// 開頭

匹配模式 //[^\r\n]*

步驟如下:

  1. 保護原始碼(非註釋)部分的 //

"",'',``

包含的字串中的 //,替換為 \\\/\\\/,目的是在正式替換前保護原始碼(非註釋)部分的 //。由於反斜槓本身需要轉義,所以替換為文字框中應輸入:\\\\\\/\\\\\\/

模式

("[^"\r\n]*?)//([^"\r\n]*?")|('[^'\r\n]*?)//([^'\r\n]*?')|(`[^`\r\n]*?)//([^`\r\n]*?`)

替換為

\1\3\5\\\\\\/\\\\\\/\2\4\6

2.模式 //[^\r\n]* 替換為:不填。刪除註釋

3.恢復 原始碼(非註釋)部分的 //。模式 \\\\\\/\\\\\\/ 替換為 //

匹配模式分析及使用注意事項

單行註釋出現的位置:

1.單獨佔一行(這種匹配最簡單):^\s+//[^\r\n]*

2.在一行程式碼之後。

這裡僅以 java/c/c++/javascript 語言為例進行匹配。

regex :

//[^\r\n]*

當原始碼(非註釋)中含 "//" 時,這個模式可能對原始碼造成破壞。

如對以下程式碼:

str.replace("//abc","def");
str.replace(";abc;//","def");
str.replace("a//bc","def");
str += "//def";
str += 'sbc//ed'
s1 = `a b //${s2}`
s2 += "//dce"; // 追加

替換後結果:

str.replace("
str.replace(";abc;
str.replace("a
str += "
str += 'sbc
s1 = `a b 

以上特殊情況的匹配模式為:

("[^"\r\n]*?)//([^"\r\n]*?")|('[^'\r\n]*?)//([^'\r\n]*?')|(`[^`\r\n]*?)//([^`\r\n]*?`)

如果用正則表示式排除以上情況比較複雜,可以考慮先將以上情況中的 // 保護起來,再刪除註釋後,再恢復。具體的步驟上面已介紹,以下不再贅述。

塊註釋(多行註釋)

特徵:/**/ 之間。

/\*[\s\S]*?\*/

html 註釋

<!--([\s\S]*?)-->