Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 从NSString中提取括号之间的值_Objective C_Cocoa_Nsstring - Fatal编程技术网

Objective c 从NSString中提取括号之间的值

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(yyyy)”的NSString,其中x和y可以是任何字符。我只想从括号内提取y。我设法使用NSScanner提取了x,但还没有找到提取y的正确方法。

最简单的方法是使用RegExKit:

然后你会这样做:

[@"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谢谢-如果你自己改正的话,我不会介意的。:)