我需要检查字符串是否是有效的Objective-C方法声明,并提取参数名称和参数描述。我正在使用正则表达式。
我试图用正则表达式提取值:
[\-\+]\s*\(\s*\w+\s*\**\)(?:\s*(\w+)\s*\{|(?:\s*(\w+)\s*\:\s*\(\s*\w+\s*\**\s*\)\s*(\w+))*\s\{)
这适用于没有参数的方法,例如
- (void)willVisitObjectiveCProcessor {
返回捕获块1“ willVisitObjectiveCProcessor”
对于带有一个参数的方法(如
)可以很好地工作- (void)willVisitObjectiveCProcessor:(CDObjectiveCProcessor *)processor {
在捕获块1中返回“ willVisitObjectiveCProcessor”,在捕获块2中返回“处理器”。
以类似方法读取多个参数时
- (void)addClassName:(NSString *)name referencedInFramework:(NSString *)frameworkName {
返回的捕获仅针对最后一个参数,而不是所有参数。 我在想什么?