如何使用正則表達(dá)式保留部分內(nèi)容的替換功能
使用正則表達(dá)式實(shí)現(xiàn)保留部分內(nèi)容的替換
可惜沒有如果,去替換時(shí)間對心的冷漠。
什么是真的念念不忘,不過就是舊情被替換了而已。
而夜幕,卻依舊如期降臨,深冬的風(fēng)替換曾經(jīng)的煙花三月,舉目四望,偌大的桌邊只我一人,空對,一盞冰冷的茶。
對于查找替換大家可能都不陌生,基本上所有的編輯器都有這樣的功能。但是普通的查找替換肯定不能滿足用戶對于泛化查找的需求。于是有了基于正則表達(dá)式的查找替換。對于正則表達(dá)式的規(guī)則這里不再說明,如果不太清楚可以自行百度。
保留一處內(nèi)容
大家可以看這樣一個(gè)例子:如下圖,如果我想將所有的"第n章"替換為"第n節(jié)",那么如何替換?直接將"章"替換為"節(jié)",為了避免其他的"章"被替換掉,通常情況下我們需要一個(gè)一個(gè)進(jìn)行替換。如何避免這種情況呢?
我們可以將"第n章"替換為"第n節(jié)",但問題是n是變化的,所以替換時(shí)會用到正則表達(dá)式。例如正則表達(dá)式"第[0-9]+章"匹配的是我們想要替換的,但是替換的內(nèi)容是固定的,也就是說,中間的數(shù)字在替換時(shí)沒辦法保留。那么如何做到保留部分內(nèi)容的替換呢?
這就需要在正則表達(dá)式中進(jìn)行改進(jìn)了。為了保留某部分,通常情況下我們在正則表達(dá)式中使用()將我們要保留的內(nèi)容括住。如下,我們要保留的是中間的數(shù)字部分,在替換時(shí)使用$1將括號的內(nèi)容表達(dá)出來。$1可以認(rèn)為是一個(gè)變量,代表著()中的內(nèi)容。
全部替換的結(jié)果如下:
保留多處內(nèi)容
如圖,對于"1 Python 2 Java"這樣的內(nèi)容,要保留1和2,將Python和Java替換為C和C++,和上面說的一樣,使用()將保留的內(nèi)容括住,然后使用$1,$2分別代替第一個(gè)()和第二個(gè)()中的內(nèi)容。
結(jié)果如下:
應(yīng)用場景
看這樣一個(gè)例子,對于從網(wǎng)頁上復(fù)制過來的內(nèi)容,在VScode中所呈現(xiàn)的樣式和網(wǎng)頁中看到的不同,如圖:題號單獨(dú)一行,排版看起來不夠整齊。為了將題號放在題目前面,一個(gè)一個(gè)改有點(diǎn)累,所以決定使用正則表達(dá)式進(jìn)行全局替換。
在進(jìn)行替換時(shí),要考慮到共性與差異性。
共性:對于所有的數(shù)字題號來說,其后面都跟著一個(gè)換行符。差異性:對于題目中以數(shù)字結(jié)尾的選項(xiàng),同樣滿足共性,考慮利用題號前面的換行符,保持題號和選項(xiàng)的差異性。
總結(jié)
到此這篇關(guān)于如何使用正則表達(dá)式保留部分內(nèi)容的替換功能的文章就介紹到這了,更多相關(guān)正則表達(dá)式保留部分內(nèi)容替換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解表單驗(yàn)證正則表達(dá)式實(shí)例(推薦)
這篇文章主要介紹了詳解表單驗(yàn)證正則表達(dá)式實(shí)例(推薦)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,特此分享到腳本之家平臺供大家參考2016-05-05js用正則表達(dá)式控制價(jià)格輸入實(shí)現(xiàn)代碼
js用正則表達(dá)式控制價(jià)格輸入實(shí)現(xiàn)代碼,主要是限制用戶的輸入。2011-11-11javascript 獲取url參數(shù)的正則表達(dá)式(用來獲取某個(gè)參數(shù)值)
javascript 傳多個(gè)參數(shù)的正則表達(dá)式(用來獲取某個(gè)參數(shù)值) ,腳本之家之前發(fā)布通過函數(shù)獲取url參數(shù)的代碼不是正則表達(dá)式。2010-01-01