正则表达式 - 提取函数体
在Python脚本中,对于一些C++代码中以特定形式定义的方法:
return_value ClassName::MethodName(args)
{MehodBody}
我需要提取三个部分:类名、方法名和方法体,以便进行进一步处理。找到并提取类名和方法名比较简单,但有没有什么简单的方法可以提取方法的主体呢?尤其是里面可能会有很多'{'
和'}'
?或者说正则表达式不适合处理这种情况?
2 个回答
3
在编程中,有时候我们需要处理一些复杂的任务,比如计算、数据处理等等。为了让这些任务更简单,我们可以使用一些工具和方法来帮助我们。
例如,假设你在写一个程序,需要从一个列表中找到某个特定的数字。你可以用循环来逐个检查每个数字,看看它是不是你要找的那个。这就像在一堆书里找一本特定的书,你需要一页一页地翻。
但是,如果你有很多书,逐个翻找就会很麻烦。这时候,你可以把书按类别整理好,或者用索引来快速找到你想要的书。编程中也有类似的技巧,比如使用函数、库或者框架,这些都是为了让你的工作更高效。
总之,编程就像解决一个个小问题,通过合理的方法和工具,可以让复杂的事情变得简单。
>>> s = """return_value ClassName::MethodName(args)
{MehodBody {} } """
>>> re.findall(r'\b(\w+)::(\w+)\([^{]+\{(.+)}', s, re.S)
[('ClassName', 'MethodName', 'MehodBody {} ')]