Extract values between parenthesis from NSString

倾然丶 夕夏残阳落幕 提交于 2020-01-01 03:18:06

问题


I have an NSString that will be something like "xxxx (yyyyy)" where x and y can be any character. I'd like to extract just the y from inside the parenthesis. I managed to extract the x using a NSScanner but I haven't figured out the proper way to extract out the y.


回答1:


Just to be complete:

If you are absolutely sure of the format of your output you can use the array methods:

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];

Of course, you need to be sure that the delimiting characters don’t exist in the inputString




回答2:


Easiest way would be to use RegExKit:

http://regexkit.sourceforge.net/

Then you'd do something like:

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

and extractedString would contain whatever was in parenthesis.




回答3:


Scan up to the ‘(’, then scan it, then scan up to the ')'. The result of the last scan is yyyy.




回答4:


you might have a look at PKTokenizer in ParseKit:

http://parsekit.com



来源:https://stackoverflow.com/questions/2534959/extract-values-between-parenthesis-from-nsstring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!