はちゅにっき

こっちのブログはまったり更新

C/C++のコメントを取り除く

「どーせ提出されてくるプログラムなんて、誰かのコピーなんでしょ?」
とゆーことで
C言語のコメントを除去した上で、diff してコピーかどうか判断しようかなー
と、悪いことを考えてみたり。

さてさて、いったいどうやってC言語のコメントにマッチさせようか。。。

参考にしたのは当然この本。ってゆーか答え載ってますね。

詳説 正規表現 第2版

詳説 正規表現 第2版

あと、探してみたら
404 Not Found
にも記述がありますね。

で、実際のその正規表現

s#/\*[^*]*\*+([^/*][^*]*\*+)*/|//[^\n]*|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#defined $2 ? $2 : ""#gse;

実にPerlらしくてスマート(?)

なんか、今回は完全に他力本願で解決しちゃいました(いつものことだけどー)