Regex for C预处理器命令

时间:2013-07-31 10:07:27

标签: c regex

我正在尝试编写一个正则表达式来匹配C程序中的C预处理程序命令。我想知道你能给我一些建议吗?

提前非常感谢你。

3 个答案:

答案 0 :(得分:1)

那将是

 grep '^[[:blank:]]*#'

请注意,这只会影响多行预处理程序指令的第一行(使用反斜杠换行符继续)。

答案 1 :(得分:0)

可能是这样的:   (虽然不太精确)

\s*#\s*(define|error|import|undef|elif|if|include|using|else|ifdef|line|endif|ifndef|pragma)\s*\S*

您可以使用cpp并传递选项-dM以列出所有已定义的宏。

cpp -dM test.c

答案 2 :(得分:0)

这个正则表达式说明了如何使用递归正则表达式集成反斜杠\换行符:

#(?<line>[^#].*?(\n|(\\[^\n]*\n(?&line))))

希望这有帮助。