NSPredicateでの正規表現について。

自分の理解では万策尽きてしまったので、どなたか教えてください。
Rubyで書くとこのようになる判断(1つめのみfalse)をしたいのですが、思い通りの結果にならなくて悩んでます。

reg = /\D+/
reg =~ '1234567'    #=> nil
reg =~ '#12345'     #=> 0
reg =~ 'あいうえお' #=> 0
reg =~ '1234A56'    #=> 4

Objective-Cではこのように書いているのですが、3つめ以外はNOになります。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self matches '\\\\D+'"];
NSLog(@"%d", [predicate evaluateWithObject:@"1234567"]);    //=> 0
NSLog(@"%d", [predicate evaluateWithObject:@"#12345"]);     //=> 0
NSLog(@"%d", [predicate evaluateWithObject:@"あいうえお"]); //=> 1
NSLog(@"%d", [predicate evaluateWithObject:@"1234A56"]);    //=> 0

Rubyで書いたのと同じ結果にするには、どの様に書いたらいいのでしょうか。

タイトルとURLをコピーしました