2024-04-26 00:25:10 发布
网友
return_value ClassName::MethodName(args) {MehodBody}
我需要提取三个部分:类名、方法名和方法体,以便进一步处理。查找和提取类名和方法名很容易,但是有没有简单的方法来提取方法的主体呢?所有可能的'{'和{}都在里面?还是这样的任务不适合?在
'{'
我建议您使用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 {} ')]
我建议您使用parser module而不是regexp,因为它将处理多行函数、不同的缩进等操作,并在格式错误的输入时中止,以便您更好地管理事务。”“尽可能避免regexp”是我所遵循的一条规则,因为它们往往会带来更多的麻烦。在
编辑: 哦,好吧。我误解了你的问题。我以为你想解析Python代码本身。我在谷歌上搜索了一下,找到了this,但它只有C。也许你可以延长时间?C++中的语法在《C++程序设计语言书》
中有相关问题 更多 >
编程相关推荐