从NSString中提取括号之间的值

时间:2010-03-28 23:12:54

标签: objective-c cocoa nsstring

我有一个类似于“xxxx(yyyyy)”的NSString,其中x和y可以是任何字符。我想从括号内提取y。我设法使用NSScanner提取x,但我还没有想出提取y的正确方法。

4 个答案:

答案 0 :(得分:16)

要完成:

如果您完全确定输出的格式,可以使用数组方法:

NSString *inputString; // this is in the form "xxxx(yyyy)"

NSCharacterSet *delimiters = [NSCharacterSet characterSetWithCharactersInString:@"()"];
NSArray *splitString = [inputString componentsSeparatedByCharactersInSet:delimiters];

NSString *xString = [splitString objectAtIndex:0];
NSString *yString = [splitString objectAtIndex:1];

当然,您需要确保inputString

中不存在分隔符

答案 1 :(得分:5)

最简单的方法是使用RegExKit:

http://regexkit.sourceforge.net/

然后你会做类似的事情:

[@"xxxx(yyyyy)" getCapturesWithRegexAndReferences:@"\\((.*)\\)",@"$1", &extractedString,nil];

和extractedString将包含括号中的任何内容。

答案 2 :(得分:5)

Scan up to'(',然后scan it,然后扫描到')'。上次扫描的结果是yyyy

答案 3 :(得分:1)

你可能会看看ParseKit中的PKTokenizer:

http://parsekit.com