我需要在iOS源代码中找到方法体。我从编写简单的正则表达式开始:\{.*\}
但是当我需要处理嵌套括号时,事情就变得复杂了。
所以我开始从另一个方向思考。我试图用这样的方法检测方法声明:[+-].+ \{
,所以我可以找到下一个模式的方法结束:\}\s+[+-]
,但这里的情况很糟糕:
- (void)method:(id)arg0 :(id)arg1 third:(id)arg3 {
...
}
#pragma mark - Bla-bla
- method2:(id)arg0 {
code(
{
});
if (1) {
}
-1;
}
您是否可以使用任何想法或算法或正则表达式来正确检测方法体?