正規表現を学習しようとしていますが、これをNSRegularExpressionとして正しく設定する方法がわかりません。文字列内の括弧の内容を取得する必要があります。
だから:ベルモント(オヘアブランチ)(フォレストパーク行き)
私に与えるだろう:「O'HareBranch」と「ForestPk-bound」
コメントされた例を本当にいただければ幸いです。
ありがとうございました!
\(.*?\)
角かっこで囲まれたすべてのものが表示されます。申し訳ありませんが、NSRegularExpressionでそれを行う方法がわかりません。IOS開発者がやってくるのを待つか、自分でそれを理解する必要があります。
\( #escaped opening bracket
. #match anything
* #match . 0 - unlimited times
? #make the * not greedy
\) #escaped closing bracket
@"\\(.*?\\)"
仕事をします。
注意:次のようなネストされた括弧はサポートされません 。
Hi duck (debug duck (now just a regular duck))
したがって、全体のソリューションは次のようになります。
NSString *string = @"Hi duck (debug duck), let's go to shower!";
NSRange range = NSMakeRange(0, [string length]);
NSString *pattern = @"\\(.*?\\)";
NSError *error = nil;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:string options:0 range:range];
NSLog(@"%@", [string substringWithRange:[match rangeAtIndex:0]]);