Я ищу способ сопоставления некоторого содержимого, которое должно существовать только внутри моей группы выбора.Скажем, у меня есть строковый файл, подобный этому:
module asdf (a,b,c,d,e);
input a;
input b;
output c;
output d;
output e;
assign c = a;
endmodule
module abc (p,q);
input p;
output q;
assign q = p + q ;
endmodule
module asdf (x,y);
input x;
output y;
assign y = x ^ y ;
endmodule
module xyz (l,m);
input l;
output m;
assign m = l - m;
endmodule
Я хочу сопоставить содержимое всех выходных портов для модуля asdf.Эти выходные порты могут различаться по количеству, но они придерживаются того же синтаксиса.
Я могу сопоставить весь модуль в формате asdf, как показано ниже:
(module\s+asdf[\s\S]+?)(input\s+[\s\S]+?)(output\s+[\s\S]+?)endmodule
с этим ленивым соответствием, наряду с выходными портами, я также сопоставляю операторы присвоения в группе-3.
В идеале я хочу сопоставить весь модуль, например:
(module\s+asdf[\s\S]+?endmodule)
Теперь в этой группе я хочу искать дальше.Я знаю, что во время написания скрипта мы можем записать содержимое всего модуля в одну переменную, а затем на следующем шаге выполнить повторный поиск в этом содержимом.Но есть ли способ поиска по содержимому с захваченной группой в одном кадре?
Есть ли способ поиска по захваченной группе рег в одном кадре.
(module\s+asdf[\s\S]+?endmodule)
Ожидается совпадение:
output c;
output d;
output e;
output y;