正则表达式匹配一个C++;班 我需要使用Python来匹配头文件中的所有C++类,每个都用它的全部内容。 我尝试了一些组合(胡乱猜测),但没有成功,比如: 'class\s+([a-zA-Z0-9_]+)\s*{([^{}]*)}\s*([a-zA-Z0-9_]+)\s*;'

正则表达式匹配一个C++;班 我需要使用Python来匹配头文件中的所有C++类,每个都用它的全部内容。 我尝试了一些组合(胡乱猜测),但没有成功,比如: 'class\s+([a-zA-Z0-9_]+)\s*{([^{}]*)}\s*([a-zA-Z0-9_]+)\s*;',python,c++,regex,Python,C++,Regex,考虑到该类可能包含扩展部分,并且可能还包含内部类。我非常确定使用regexp无法实现此功能…您可能需要编写一个解析器来实现此功能。您缺少继承(例如,class Foo:public Bar)、structs、模板专门化(例如,模板类Foo)C++是一个很难理解的语法,所以我建议你找一个第三方工具。你不能完全用 ReXEX/代码>来完成它,因为它不能处理嵌套的BraKET.LBCLANG有Python绑定,我建议你用它来确定它不可能用ReGEXP来做……你可能需要编写一个解析器来完成这个任务。继承

考虑到该类可能包含扩展部分,并且可能还包含内部类。

我非常确定使用regexp无法实现此功能…您可能需要编写一个解析器来实现此功能。您缺少继承(例如,
class Foo:public Bar
)、
struct
s、模板专门化(例如,
模板类Foo
)C++是一个很难理解的语法,所以我建议你找一个第三方工具。你不能完全用<代码> ReXEX/代码>来完成它,因为它不能处理嵌套的BraKET.LBCLANG有Python绑定,我建议你用它来确定它不可能用ReGEXP来做……你可能需要编写一个解析器来完成这个任务。继承(例如
class Foo:public Bar
)、
struct
s、模板专门化(例如
template class Foo
)C++是一个很难理解的语法,所以我建议找一个第三方工具。你不能完全用<代码> ReXEX/代码>来完成这件事,因为它不能处理嵌套的BraKET.LBCLANG有Python绑定,我建议你使用那些。