NotePad++ 正則表達式複製指定字符串

NotePad++ 正則表達式複製指定字符串

本文僅描述一種複製文本的方法,如需拓展功能請自行百度。本人對正則表達式規則也不是很清晰,穩重若有錯誤請評論指出,但勿暴躁!。

在使用Verilog時,頂層模塊例化代碼時,使用一種比較簡潔的方法來例化程序,於是決定使用Notepad++文本工具配合正則表達式處理。

如下一段代碼,處理前後:

/*Verilog代碼處理前*/
module clarke_module(
input rst,
input clk,
input Clarke_Start,
input signed [15:0] Ia,
input signed [15:0] Ib,
output reg signed[15:0] Ialpha,
output reg signed[15:0] Ibeta,
output reg Clarke_Done
);
/*Verilog代碼處理後*/
clarke_module clarke_module_inst(
    .rst(rst),
    .clk(clk),
    .Clarke_Start(Clarke_Start),
    .Ia(Ia),
    .Ib(Ib),
    .Ialpha(Ialpha),
    .Ibeta(Ibeta),
    .Clarke_Done
);

首先處理第一行,處理爲

​/*處理前*/
module clarke_module(
​/*處理後*/
clarke_module  clarke_module_inst(

使用Notepad++ 的替換功能,查找目標和替換目標爲 

(^module) (.*)\(
\2 \2\_inst\(

具體看圖:

詳解:此處的()表示一個坑位,查找目標中有兩對括號(最後一個括號表示括號字符,前面帶有轉義字符斜槓)表示兩個坑位,坑位1坑位2。第一個括號中^表示從行首開始匹配,需要匹配的字符串爲module。第二個括號中 .*表示匹配任意字符,最後有一個\( 表示匹配一個括號字符。替換時,\2 表示把坑位2中的數據原封不動拿過來,此處需要把坑位2中的數據用兩次,並在第二個後面加上 _inst 。其中注意空格,否則替換完成會多或少一些空格。

然後開始後面的替換

/*查找目標*/
(^.*\]) (.*)\,
/*替換目標*/
    .\2\(\2\)\,

後面一段和上面一段很相似,不再贅述。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章