Objective c 从NSString中提取括号之间的值
我有一个类似于“xxxx(yyyy)”的NSString,其中x和y可以是任何字符。我只想从括号内提取y。我设法使用NSScanner提取了x,但还没有找到提取y的正确方法。最简单的方法是使用RegExKit: 然后你会这样做:Objective c 从NSString中提取括号之间的值,objective-c,cocoa,nsstring,Objective C,Cocoa,Nsstring,我有一个类似于“xxxx(yyyy)”的NSString,其中x和y可以是任何字符。我只想从括号内提取y。我设法使用NSScanner提取了x,但还没有找到提取y的正确方法。最简单的方法是使用RegExKit: 然后你会这样做: [@"xxxx(yyyyy)" getCapturesWithRegexAndReferences:@"\\((.*)\\)",@"$1", &extractedString,nil]; 和extractedString将包含括号中的任何内容。the'(',
[@"xxxx(yyyyy)" getCapturesWithRegexAndReferences:@"\\((.*)\\)",@"$1", &extractedString,nil];
和extractedString将包含括号中的任何内容。the'(',然后,再扫描到''''。最后一次扫描的结果是
yyyy
您可以在ParseKit中查看PKTokenizer:
只是为了完整起见:
如果您完全确定输出的格式,可以使用数组方法:
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中不存在分隔字符如果x和y可以是括号,那么您将受到伤害。听起来您想要正则表达式…一个没有正则表达式的解决方案!听,听!yString声明(ojbectAtIndex)中有一个小的输入错误,splitString声明中缺少一个分号。但在其他方面效果很好。谢谢。@TPoschel谢谢-如果你自己改正的话,我不会介意的。:)