Objective-Cで正規表現を使うのrubyなどに比べてちょっと面倒ですが、単純なものなら簡単に処理できるようです。
文字列「あいう(えお)」からカッコ前と、カッコの中を取り出す
正規表現/(.+)\s*((.+))/だとすると、必要な文字列は
@"(.+)\\s*\\((.+)\\)";
になります。バックスペースは「\」となります。あとはパターンに当てはめてば良いだけでした。
NSString *regexpStr = @"(.+)\\s*\\((.+)\\)";
NSRegularExpression *regexp
= [NSRegularExpression regularExpressionWithPattern:regexpStr options:0 error:nil];
NSTextCheckingResult *match
= [regexp firstMatchInString:itemStr options:0 range:NSMakeRange(0, str.length)];
if (match.numberOfRanges) { // マッチした全体
NSString *str0 = [itemStr substringWithRange:[match rangeAtIndex:0]]; // 最初のカッコの中
NSString *str1 = [itemStr substringWithRange:[match rangeAtIndex:1]]; // 2番目のカッコ の中
NSString *str2 = [itemStr substringWithRange:[match rangeAtIndex:2]];
...
コメント