簡單介紹Idea使用正規表示式批量替換字串的方法

大雄45發表於2021-10-19
導讀 這篇文章給大家介紹了Idea使用正規表示式批量替換字串的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑑價值,需要的朋友參考下吧

由於一開始的粗放擴張,公司專案程式碼裡,遺留有很多類似魔法數的寫死的id,導致現在維護困難。於是交給我任務,將這些id替換成靜態變數。

這些id有十多種,分佈在十個檔案中,總共六十多處,要手動去查詢替換幾乎是不可能的。

Idea中,選單欄Edit->find->replace in path可以開啟全檔案查詢功能,可以對專案的所有檔案中的內容進行查詢替換。

現在我們有這樣的程式碼,其中的abcd是寫死的id:

String id="abcd".equals(str);

要替換成:

String id=ConstantService.getBy("abcd").equals(str);

如果只用普通的匹配,我會想到查詢"String id=\"",替換成"String id=ConstantService.getBy(\""。

然而在專案中"String id=\""這樣格式的程式碼是非常多的,普通的匹配很可能誤傷到其他程式碼。

因此我使用正則匹配。點選右邊的".*"圖示開啟正則匹配模式。

簡單介紹Idea使用正規表示式批量替換字串的方法簡單介紹Idea使用正規表示式批量替換字串的方法

需要替換的程式碼符合這樣的匹配模式:

String id=\"(\w+)\".equals\(str\);

可以替換成:

String id=ConstantService.getBy("$1").equals(str);

匹配模式中,寫死的id可以用\"(\w+)\"表示。最外側是轉義的引號。括號代表一個匹配組,其中的\w匹配字元,+號表示字元出現1或多次。這樣的模式符合專案中寫死id。

替換串中$1代表匹配串中的第一個匹配組。因此,我們不用一次次的指定每個id,替換串自動將匹配的id替換到結果中。

這樣,這項本來令人難以想象的複雜工作就輕鬆解決了。到此這篇關於Idea使用正規表示式批量替換字串的文章就介紹到這了。

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2786919/,如需轉載,請註明出處,否則將追究法律責任。

相關文章