如何去除c++文件中的注释

忘记考虑这种情况了,revise一下

while(<>
{
               $file .=$_;
}
print $file;
$file=~s{((//.*))|(/\*(\w|\s)*?\*/$)}{}mg;
print "new file is \n";
print $file;
不是单行处理,有些注释是跨行的,所以。。。
正则方式,建议看 <<Mastering.Regular.Expressions>>
可以多行处理
版上讨论过很多次的范围操作符 ..

#!/usr/bin/perl -w
use strict;
open(FH,"test.txt");
while(<FH>){
        next if /^\s*\/\//;
        /\/\*/../\*\// and next;
        print $_;
}

<<Mastering.Regular.Expressions.3rd>>  chapter 6.7~6.8
([^"'/]+|"[^\\"]*(?:\\.[^\\"]*)*"[^"'/]*|'[^'\\]*(?:\\.[^'\\]*)*'[^"'/]*)|/\*[^*]*\*+(?:[^/*][^*]*\*+)*/|//[^\n]*


强烈推荐 <<Mastering.Regular.Expressions>>    真的是一本非常好的书