如何从C文件中提取代码注释?

如何从C文件中提取代码注释?,c,parsing,extract,doxygen,C,Parsing,Extract,Doxygen,我有一个包含大量代码注释的C文件,如何提取注释?只需要注释,而不是c代码。有什么工具我可以用来做这件事吗。e、 脱氧葡萄糖?或者我需要自己构建一个解析器?如果需要,哪种语言更好 提前谢谢 谢谢大家!! 我现在开始研究perl,以前从未使用过这种语言,它看起来很聪明~~有没有从包含xml的文件中提取xml的建议?我建议您使用脚本语言,如perl,并分析文件,寻找所有可能的方法: - "//" for single-line comments. - "/*" and "*/" for multi

我有一个包含大量代码注释的C文件,如何提取注释?只需要注释,而不是c代码。有什么工具我可以用来做这件事吗。e、 脱氧葡萄糖?或者我需要自己构建一个解析器?如果需要,哪种语言更好

提前谢谢

谢谢大家!!
我现在开始研究perl,以前从未使用过这种语言,它看起来很聪明~~有没有从包含xml的文件中提取xml的建议?

我建议您使用脚本语言,如perl,并分析文件,寻找所有可能的方法:

 - "//" for single-line comments.
 - "/*" and "*/" for multi-line comments.
 - doxygen ones "///", "/**", "/*!"

下面的一行显示main.c文件中所有注释行(或包含注释的行):

cat main.c | awk '/\/\// {print $0}; /\/\*/ {blk=1}; {if(blk) print $0}; /\*\// {blk=0}'

你对这些评论有什么打算?是否需要保留其上下文,例如名称空间/类/函数/行号等。?你可以编写简单的正则表达式和bash脚本来删除注释。我不需要保留它们的上下文,注释中包含一些xml,我想提取它们。有什么建议吗?感谢这也是一个允许提取所有评论的from。使用as
python extractcomments.py foo.c
。它将为您提供foo_cmt.txt。它给出了(至少对我来说)与下面的awk脚本完全相同的结果。实际上,它看起来已经有了一个用于此的perl模块。是的!!这就是我想要的!我现在开始研究perl,以前从未使用过这种语言,它看起来很聪明~~谢谢大家。对于从包含xml的文件中提取xml,有什么建议吗?并不是那么简单<代码>printf(“//hi”)不是一个注释。而且做得很差。行
printf(“//hi”)不是注释。