0

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

非常感谢你。

4

3 回答 3

1

那将是

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

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

于 2013-07-31T11:12:43.593 回答
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

于 2013-07-31T10:23:24.043 回答
0

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

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

希望这可以帮助。

于 2015-02-23T12:46:55.610 回答