Notepad++使用正則表示式快速刪除註釋
阿新 • • 發佈:2020-10-14
摘要: Notepad++使用正則表示式快速刪除註釋:單行註釋,多行註釋,html註釋。
運用Notepad++中的替換功能和正則表示式匹配可以快速刪除大量註釋
刪除的具體步驟如下:
1.開啟Notepad++,按Ctrl + H 開啟替換框
2.點選如圖按鈕切換到使用正則表示式匹配
3.輸入正則表示式,選擇全部替換
下面就分享一下常用的幾種註釋方式的正則表示式
單行註釋
特徵://
開頭
匹配模式 //[^\r\n]*
步驟如下:
- 保護原始碼(非註釋)部分的 //
將
"",'',``
包含的字串中的 //,替換為 \\\/\\\/
,目的是在正式替換前保護原始碼(非註釋)部分的 //。由於反斜槓本身需要轉義,所以替換為文字框中應輸入:\\\\\\/\\\\\\/
模式
("[^"\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]*?)-->