Objective c 使用正则表达式解析源中的所有NS*变量
我试图提取objective-c.m文件中所有变量的名称。我认为正则表达式可能是一个很好的方法。假设我在我的资料中有这样的东西:Objective c 使用正则表达式解析源中的所有NS*变量,objective-c,regex,parsing,Objective C,Regex,Parsing,我试图提取objective-c.m文件中所有变量的名称。我认为正则表达式可能是一个很好的方法。假设我在我的资料中有这样的东西: - (void)testMethod:(NSString*)param1Name param2:(NSString*)param2Name{ NSxxxxx *xxxx = @"something"; NSString *test2 = @"test"; NSArray *array; } 理想情况下,我想要的输出是这样的: xxxx 测试2
- (void)testMethod:(NSString*)param1Name param2:(NSString*)param2Name{
NSxxxxx *xxxx = @"something";
NSString *test2 = @"test";
NSArray *array;
}
理想情况下,我想要的输出是这样的:
xxxx
测试2
排列
这在正则表达式中可行吗?我认为一个正则表达式可能足以提取以NS开头的单词的所有行,而下一个单词以*开头
编辑:到目前为止,我有:
(NS)\w+\s*?
问题在于,它匹配的是变量的类型,而不是变量名称:
NSXXXXX
NSString
NSArray
如何使其与星号后的单词匹配?由于您希望匹配NS*变量的特定出现次数(行首的变量),您可以使用
(?m)^[ \t]*NS\w+\s*\*\s*(\w+)
看
您需要的值将位于组1内
详情:
-启用多行选项以允许(?m)
匹配行的开头,而不是字符串^
-行的开头^
-零个或多个空格/制表符[\t]*
-文本NS
NS
-1+字字符(字母、数字或下划线)\w+
-0+空格\s*
-星号\*
-零个或多个空格\s*
-第1组-1+字字符(\w+)