注释中的字符串和字符串中的注释

Jay*_*ley 0 python regex

我试图使用Python和Regex计算C代码中包含的注释中的字符,但没有成功.我可以先删除字符串以删除字符串中的注释,但这也会删除注释中的字符串,结果将会很糟糕.有没有机会通过使用正则表达式来评论不匹配评论中的字符串,反之亦然?

小智 6

不,不是真的.

正则表达式不是解析您描述的嵌套结构的正确工具; 相反,你需要解析C语法(或者你感兴趣的"dumb子集"),你可能会发现正则表达式对此很有帮助.具有三种状态(CODE,STRING,COMMENT)的相对简单的状态机就可以完成.

  • 您可能需要第四个字符常量状态.在C中,文本`'/*'`是一个多字符的字符常量; 它具有未定义或实现定义的行为,但不会启动注释. (2认同)