1

toとで解析items=14-35したいregex1435

PHPで使用 /^items=([-\d,]+)$/しており、iPhoneプロジェクトで使用したいと考えています。私はAppleのドキュメントとNSRegularExpressionのような同様の質問をここでチェックしました。

NSError *error = nil;
NSRegularExpression *regex = 
 [NSRegularExpression regularExpressionWithPattern:@"/^items=([-\\d,]+)$/"
                 options:NSRegularExpressionCaseInsensitive error:&error];

NSString *str = @"items=14-35";
NSTextCheckingResult *match = 
  [regex firstMatchInString:str 
         options:NSMatchingAnchored 
         range:NSMakeRange(0, [str length])];

NSLog(@"MATCH : %@",match);

上記のコードはエラーなしで出力NULLされます。match.numberOfRanges = 0

4

2 に答える 2

2

最初と最後の区切り文字のスラッシュは、正規表現の一部ではありません。パターン文字列からそれらを削除します。

(場合によっては、最後に正規表現をフラグから区切るためにスラッシュが使用されますが、Cocoaはそれを行いません。フラグを明示的に渡すため、スラッシュは必要ありません。)

于 2012-08-16T07:57:17.947 に答える
0

文字列を分割するだけの場合は、 componentsSeparatedByStringを使用することもできます。

もちろん、入力データを検証する必要がある場合は、正規表現の方が適している場合があります。

于 2012-08-16T07:49:28.563 に答える