如何使用正則表達(dá)式保留部分內(nèi)容的替換功能
使用正則表達(dá)式實(shí)現(xiàn)保留部分內(nèi)容的替換
可惜沒有如果,去替換時(shí)間對(duì)心的冷漠。
什么是真的念念不忘,不過就是舊情被替換了而已。
而夜幕,卻依舊如期降臨,深冬的風(fēng)替換曾經(jīng)的煙花三月,舉目四望,偌大的桌邊只我一人,空對(duì),一盞冰冷的茶。
對(duì)于查找替換大家可能都不陌生,基本上所有的編輯器都有這樣的功能。但是普通的查找替換肯定不能滿足用戶對(duì)于泛化查找的需求。于是有了基于正則表達(dá)式的查找替換。對(duì)于正則表達(dá)式的規(guī)則這里不再說明,如果不太清楚可以自行百度。
保留一處內(nèi)容
大家可以看這樣一個(gè)例子:如下圖,如果我想將所有的"第n章"替換為"第n節(jié)",那么如何替換?直接將"章"替換為"節(jié)",為了避免其他的"章"被替換掉,通常情況下我們需要一個(gè)一個(gè)進(jìn)行替換。如何避免這種情況呢?

我們可以將"第n章"替換為"第n節(jié)",但問題是n是變化的,所以替換時(shí)會(huì)用到正則表達(dá)式。例如正則表達(dá)式"第[0-9]+章"匹配的是我們想要替換的,但是替換的內(nèi)容是固定的,也就是說,中間的數(shù)字在替換時(shí)沒辦法保留。那么如何做到保留部分內(nèi)容的替換呢?

這就需要在正則表達(dá)式中進(jìn)行改進(jìn)了。為了保留某部分,通常情況下我們?cè)谡齽t表達(dá)式中使用()將我們要保留的內(nèi)容括住。如下,我們要保留的是中間的數(shù)字部分,在替換時(shí)使用$1將括號(hào)的內(nèi)容表達(dá)出來。$1可以認(rèn)為是一個(gè)變量,代表著()中的內(nèi)容。

全部替換的結(jié)果如下:

保留多處內(nèi)容
如圖,對(duì)于"1 Python 2 Java"這樣的內(nèi)容,要保留1和2,將Python和Java替換為C和C++,和上面說的一樣,使用()將保留的內(nèi)容括住,然后使用$1,$2分別代替第一個(gè)()和第二個(gè)()中的內(nèi)容。

結(jié)果如下:

應(yīng)用場(chǎng)景
看這樣一個(gè)例子,對(duì)于從網(wǎng)頁(yè)上復(fù)制過來的內(nèi)容,在VScode中所呈現(xiàn)的樣式和網(wǎng)頁(yè)中看到的不同,如圖:題號(hào)單獨(dú)一行,排版看起來不夠整齊。為了將題號(hào)放在題目前面,一個(gè)一個(gè)改有點(diǎn)累,所以決定使用正則表達(dá)式進(jìn)行全局替換。

在進(jìn)行替換時(shí),要考慮到共性與差異性。
共性:對(duì)于所有的數(shù)字題號(hào)來說,其后面都跟著一個(gè)換行符。差異性:對(duì)于題目中以數(shù)字結(jié)尾的選項(xiàng),同樣滿足共性,考慮利用題號(hào)前面的換行符,保持題號(hào)和選項(xiàng)的差異性。

總結(jié)
到此這篇關(guān)于如何使用正則表達(dá)式保留部分內(nèi)容的替換功能的文章就介紹到這了,更多相關(guān)正則表達(dá)式保留部分內(nèi)容替換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解表單驗(yàn)證正則表達(dá)式實(shí)例(推薦)
這篇文章主要介紹了詳解表單驗(yàn)證正則表達(dá)式實(shí)例(推薦)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,特此分享到腳本之家平臺(tái)供大家參考2016-05-05
js用正則表達(dá)式控制價(jià)格輸入實(shí)現(xiàn)代碼
js用正則表達(dá)式控制價(jià)格輸入實(shí)現(xiàn)代碼,主要是限制用戶的輸入。2011-11-11
javascript 獲取url參數(shù)的正則表達(dá)式(用來獲取某個(gè)參數(shù)值)
javascript 傳多個(gè)參數(shù)的正則表達(dá)式(用來獲取某個(gè)參數(shù)值) ,腳本之家之前發(fā)布通過函數(shù)獲取url參數(shù)的代碼不是正則表達(dá)式。2010-01-01

