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\)\,

后面一段和上面一段很相似,不再赘述。。。。

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