時間:2023-03-18來源:系統城裝機大師作者:佚名
使用正則表達式實現保留部分內容的替換
可惜沒有如果,去替換時間對心的冷漠。
什么是真的念念不忘,不過就是舊情被替換了而已。
而夜幕,卻依舊如期降臨,深冬的風替換曾經的煙花三月,舉目四望,偌大的桌邊只我一人,空對,一盞冰冷的茶。
對于查找替換大家可能都不陌生,基本上所有的編輯器都有這樣的功能。但是普通的查找替換肯定不能滿足用戶對于泛化查找的需求。于是有了基于正則表達式的查找替換。對于正則表達式的規則這里不再說明,如果不太清楚可以自行百度。
大家可以看這樣一個例子:如下圖,如果我想將所有的"第n章"替換為"第n節",那么如何替換?直接將"章"替換為"節",為了避免其他的"章"被替換掉,通常情況下我們需要一個一個進行替換。如何避免這種情況呢?
我們可以將"第n章"替換為"第n節",但問題是n是變化的,所以替換時會用到正則表達式。例如正則表達式"第[0-9]+章"匹配的是我們想要替換的,但是替換的內容是固定的,也就是說,中間的數字在替換時沒辦法保留。那么如何做到保留部分內容的替換呢?
這就需要在正則表達式中進行改進了。為了保留某部分,通常情況下我們在正則表達式中使用()將我們要保留的內容括住。如下,我們要保留的是中間的數字部分,在替換時使用$1將括號的內容表達出來。$1可以認為是一個變量,代表著()中的內容。
全部替換的結果如下:
如圖,對于"1 Python 2 Java"這樣的內容,要保留1和2,將Python和Java替換為C和C++,和上面說的一樣,使用()將保留的內容括住,然后使用$1,$2分別代替第一個()和第二個()中的內容。
結果如下:
看這樣一個例子,對于從網頁上復制過來的內容,在VScode中所呈現的樣式和網頁中看到的不同,如圖:題號單獨一行,排版看起來不夠整齊。為了將題號放在題目前面,一個一個改有點累,所以決定使用正則表達式進行全局替換。
在進行替換時,要考慮到共性與差異性。
共性:對于所有的數字題號來說,其后面都跟著一個換行符。差異性:對于題目中以數字結尾的選項,同樣滿足共性,考慮利用題號前面的換行符,保持題號和選項的差異性。
到此這篇關于如何使用正則表達式保留部分內容的替換功能的文章就介紹到這了
2023-03-18
gulp-font-spider實現中文字體包壓縮實踐2023-03-18
ChatGPT在前端領域的初步探索2023-03-18
uniapp五分鐘實現刷抖音小程序教程示例Vue.js、React和Angular對比 以下是Vue.js的代碼示例: 以下是React的代碼示例: 以下是Angular的代碼示例:...
2023-03-18