有多个C ++文件。我需要从这些文件中提取for循环体。
有没有一种简单的方法可以使用grep来做到这一点。考虑没有嵌套的for循环。
答案 0 :(得分:5)
如果不解析整个文件,答案就是否定。
for循环由context-free grammar组成,因此无法与正则表达式匹配。
更复杂的方法是使用grep
搜索for循环的开头(for
后跟可选空格后跟lpar)然后手动查找结束卷曲。
不幸的是,解析C ++是Turing Complete,所以除非有一些可爱的标志传递给你的编译器,否则你就被软管了。