正则表达式函数体提取

2024-04-26 00:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

Python脚本中的p>,对于某些C++代码中的每个方法定义:

return_value ClassName::MethodName(args)
{MehodBody} 

我需要提取三个部分:类名、方法名和方法体,以便进一步处理。查找和提取类名和方法名很容易,但是有没有简单的方法来提取方法的主体呢?所有可能的'{'和{}都在里面?还是这样的任务不适合?在


Tags: 方法代码脚本return定义valueargs主体
2条回答

我建议您使用parser module而不是regexp,因为它将处理多行函数、不同的缩进等操作,并在格式错误的输入时中止,以便您更好地管理事务。”“尽可能避免regexp”是我所遵循的一条规则,因为它们往往会带来更多的麻烦。在


编辑: 哦,好吧。我误解了你的问题。我以为你想解析Python代码本身。我在谷歌上搜索了一下,找到了this,但它只有C。也许你可以延长时间?C++中的语法在《C++程序设计语言书》

中有
>>> s = """return_value ClassName::MethodName(args)
{MehodBody {} } """
>>> re.findall(r'\b(\w+)::(\w+)\([^{]+\{(.+)}', s, re.S)
[('ClassName', 'MethodName', 'MehodBody {} ')]

相关问题 更多 >