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