文章目錄
- 1. 問題引入
- 2. 批量替換項目下所有文件中的特定內容
- 2.1 右鍵項目的根目錄,點擊在文件中替換
- 2.2 輸入要替換的內容
- 3. 解決替換一整行文本后出現空行的問題
- 4. 增加篩選條件提高匹配的精確度
更多 IDEA 的使用技巧可以查看 IDEA 專欄: IDEA
1. 問題引入
在使用IDEA開發項目時,你是否遇到過以下難題
需要將項目下所有文件中的特定內容換成指定文本,但CTRL + R
替換只適用于單個文件,一個文件一個文件地替換不太現實,而且要找到哪個文件中包含特定文本也不簡單
什么情況下會使用到批量替換項目下所有文件中的特定內容
功能呢
我們下載一個開源項目進行二次開發時,文件中可能會有作者信息和文件的創建時間,如果要去除這些信息,就需要用到批量替換項目下所有文件中的特定文本
功能
可能你會說我是要刪除這些特定內容,而不是將這些特定內容替換成特定文本。那如果我們將這些特定內容都換成空字符串,不就能達到相同的效果了嗎
那有沒有方法批量替換項目下所有文件中的特定文本呢?當然有,IDEA的研發組早已實現了這個功能
本次演示使用的是安裝了漢化插件的 IDEA,英文版的 IDEA 操作類似
2. 批量替換項目下所有文件中的特定內容
本文演示的方法適用于JetBrains公司旗下的所有編程軟件(Clion、Pycharm、WebStorm等)
2.1 右鍵項目的根目錄,點擊在文件中替換
2.2 輸入要替換的內容
點擊在文件中替換后,就會彈出以下界面
第一個輸入框表示要匹配的特定內容,輸入框右邊有三個選項
- Cc選項表示是否區分大小寫
- W選項表示是否完全匹配整個單詞(開啟完全匹配整個單詞之后,如果搜索hand關鍵字,就不會搜索到handsome,也就是嚴格的同字數匹配)
- .*選項表示是否開啟正則匹配
第二個輸入框表示用于替換掉匹配到特定內容的文本
兩個輸入框的內容都填寫完之后,點擊替換全部
按鈕,就能夠批量替換項目下所有文件中的特定內容了
.*@since.*
正則表達式 .*@since.*
的含義如下:
.
:匹配除換行符之外的任意單個字符*
:表示前一個字符可以出現零次或多次@since
:這是一個固定的字符串,表示需要匹配的文本中包含 “@since”
這個正則表達式用于匹配任何包含 “@since” 這個字符串的文本。它不關心 “@since” 字符串前后是什么內容,只要文本中存在這個字符串,就會被匹配到。例如,以下文本都會被這個正則表達式匹配:
- “This feature was added @since version 1.0.”
- “Check the documentation @since it has been updated.”
- “@since the last update, several bugs were fixed.”
3. 解決替換一整行文本后出現空行的問題
還是以刪除文件中的作者信息和文件的創建時間為例,如果我們使用正則替換一整行文本時,替換后會出現一個空行
替換前
替換后
有沒有辦法將空行也刪除掉呢,當然有
我們只需要點擊選項前面的換行符,在進行替換時就能夠幫我們將換行符也刪除掉了
替換前
替換后
4. 增加篩選條件提高匹配的精確度
在選擇要替換的內容時,可以增加篩選條件提高匹配的精確度,例如
- 附加根據文件的后綴進行篩選(文件掩碼)
- 附加根據特定內容所在的位置進行篩選(注釋、在字符串字面量中、排除注釋等)