notepad++正則表達式批量替換

notepad++

notepad++是一款自由軟件的文本編輯器,輕量且功能強大,相關(guān)的介紹可以參見維基百科。我覺得最值得一提的是notepad++占用內(nèi)存非常小,工作中我一般都是一直開著用來處理各種文本任務(wù),如批量替換、查詢等,下圖是visual studio code和notepad++占用內(nèi)存的對比,notepad++僅占用12M的內(nèi)存。你可以直接點擊鏈接notepad++進行下載。

內(nèi)存占用.png

正則表達式

正則表達式(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),又稱正規(guī)表示式、正規(guī)表示法、正規(guī)表達式、規(guī)則表達式、常規(guī)表示法,是計算機科學(xué)的一個概念。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規(guī)則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些匹配某個模式的文本。

上面一段內(nèi)容來自維基百科的介紹,總之正則表達式非常強大,哪怕只學(xué)習(xí)一些簡單的正則表達式,有可能會讓你的日常工作效率提升很多倍,這里我列出了一些常用的正則表達式,如果要深入學(xué)習(xí)我推薦Udacity的cs262編程語言這門mooc課程,課程中的前幾節(jié)對正則表達式做了詳細的講解和大量的練習(xí),學(xué)了這部分內(nèi)容會對正則表達式有較深入的理解。

常用正則表達式.png

notepad++正則表達式查詢示例

以如下文本內(nèi)容為例,讓我們以正則表達式的方法匹配每一行中的郵箱地址,即下面截圖中的高亮部分內(nèi)容

dsadass@qq.com  892372813892dads cat  god dashsas
dsdasdas  sda qing da da  dsdssss21188383_dddeeee@google.com
jjkkkk  dds   777&&&**8  _dssaaszhxiikqww_+3333ksdsd@163.com  9998899 dasds 737337&&&&9jk
                               djkkjoooukk@tom.com
ddss8888999dssds  @@@@   asdaskjsaklk sadasdaskkk{{{{}}}}dsdsasa@outlook.com  9skdbqhe2y1jlansBuijkmmIOIOkk
匹配文本中的高亮部分.png

notepad++新建文本并拷貝如上文本內(nèi)容,Ctrl+F打開查找窗口,查找模式勾選正則表達式,查找目標中輸入文本\S+@[a-z0-9]+\.[a-z]+,然后點擊在當前文件中查找,在下方橘色高亮內(nèi)容即為匹配的內(nèi)容。

正則表達式查詢.gif

對應(yīng)的匹配解析如下,可以對照上面列出的常用正則表達式字符進行理解,當然這個匹配的正則表達式并不是唯一解,你也可以嘗試使用其他的正則表達式進行匹配查詢。


查詢正則表達式解析.png

notepad++正則表達式批量替換示例

仍然以上一節(jié)正則表達式查詢示例中的文本內(nèi)容為例,現(xiàn)在希望把@后的郵箱地址統(tǒng)一替換為outlook.com,而其余部分保持不變,我們可以利用替換功能,Ctrl+H打開(也可以通過菜單項搜索>替換來打開),查找目標輸入(\S+@)[a-z0-9]+\.[a-z]+,替換為輸入\1outlook.com,然后點擊全部替換,我們可以看到所有的郵箱地址全部都替換為了outlook.com,而其他部分的內(nèi)容保持不變。
我們發(fā)現(xiàn)(\S+@)[a-z0-9]+\.[a-z]+只是比之前多了一對(),它的意思匹配(pattern)中的pattern(也就是\S+@)并獲取這一匹配的子字符串,在替換時\1就表示匹配的這部分字符串。

正則表達式替換.gif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容