从NSString中提取括号之间的值

Ter*_*ary 6 cocoa objective-c nsstring

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

Abi*_*ern 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];
Run Code Online (Sandbox Code Playgroud)

当然,您需要确保inputString中不存在分隔符


wad*_*rld 5

最简单的方法是使用RegExKit:

http://regexkit.sourceforge.net/

然后你会做类似的事情:

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

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


Pet*_*sey 5

扫描到 '(',然后扫描它,然后扫描到')'.上次扫描的结果是yyyy.