gpt4 book ai didi

c++ - 用于从 C++ 代码中提取函数的正则表达式

转载 作者:行者123 更新时间:2023-11-30 02:40:34 24 4
gpt4 key购买 nike

我有示例 C++ 代码 ( http://pastebin.com/6q7zs7tc ),我必须从中提取函数名称以及函数所需的参数数量。到目前为止,我已经编写了这个正则表达式,但它对我来说并不完美。

(?![a-z])[^\:,>,\.]([a-z,A-Z]+[_]*[a-z,A-Z]*)+[(]

最佳答案

您无法使用正则表达式可靠地解析 C++。

事实上,你不能用弱解析技术解析它(见Why can't C++ be parsed with a LR(1) parser?)。如果您希望从源文件中可靠地提取这些信息,您将需要一个耗时考验的 C++ 解析器;见https://stackoverflow.com/a/28825789/120163

如果您不关心您的提取过程不稳定,那么您可以使用正则表达式和一些额外的 hackery。启发式提取的关键问题是匹配各种括号,例如 [...]、< ... >(这对移位运算符不太适用)和 { ... }。括号匹配要求您保留一堆看到的括号。在存在宏和预处理器条件的情况下,括号匹配可能会失败。

关于c++ - 用于从 C++ 代码中提取函数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com