1

正規表現を学習しようとしていますが、これをNSRegularExpressionとして正しく設定する方法がわかりません。文字列内の括弧の内容を取得する必要があります。

だから:ベルモント(オヘアブランチ)(フォレストパーク行き)

私に与えるだろう:「O'HareBranch」と「ForestPk-bound」

コメントされた例を本当にいただければ幸いです。

ありがとうございました!

4

2 に答える 2

3

\(.*?\)角かっこで囲まれたすべてのものが表示されます。申し訳ありませんが、NSRegularExpressionでそれを行う方法がわかりません。IOS開発者がやってくるのを待つか、自分でそれを理解する必要があります。

\( #escaped opening bracket
  . #match anything
  * #match . 0 - unlimited times
  ? #make the * not greedy
\) #escaped closing bracket
于 2012-07-23T20:29:29.457 に答える
2
@"\\(.*?\\)"

仕事をします。

注意:次のようなネストされた括弧はサポートされません

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]]);
于 2015-06-23T07:26:59.587 に答える