我喜欢从单词 'module' 到单词 'endmodule' 中捕获文本。verilog 文件可能包含多个模块,所以我喜欢指出一个特定的模块。
我也想忽略任何评论块中的任何“endmodule”字。
Verilog 文件示例:
module whatever
//endmodule
// endmodule
// asadsadadsa endmodule
// enasaa endmodule asas
/* endmodule */
endmodule // whatever
module nonsense
//
// bla bla
//
endmodule // nonsense
假设我想从上面捕获模块。我正在使用 Perl 单行模式。
到目前为止,我到了这一点:
if ($content =~ m/(module\s+whatever[\s(#]?.*?endmodule(?:\s*\/\/\s*whatever)?)/s)
{
print $1;
}
else
{
print "NOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!!!!!!!!\n";
}
到目前为止,这与“ //endmodule ”的第一次出现匹配
任何帮助或提示将不胜感激。