我正在尝试编写一个正则表达式来匹配C程序中的C预处理程序命令。我想知道你能给我一些建议吗?
提前非常感谢你。
答案 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))))
希望这有帮助。