我有这样的文字:
我想使用perl正则表达式删除以/ *开头,包含jjj并以* /结尾的部分 (删除包含特定关键字的c条评论...) 在上面的例子中,我希望只删除第2,4和5行
非常感谢您的帮助,
杰克
答案 0 :(得分:4)
一般来说,这不太可能。由于注释,延续线等,C解析非常复杂,特殊处理。
但是,如果你有一个足够简单的案例,你可能会这样做。我保留了“// blah jjj”评论处理,因为你没有提到它。
while ($ccode =~ s/(.*?)(\/\*.*?\*\/)//s)
{
$out .= $1;
my $comment = $2;
$out .= $comment unless ($comment =~ /\bjjj\b/);
}
$out .= $ccode;