アーカイブ

NSPredicateでの正規表現について。その2 このエントリーを含むはてなブックマーク はてなブックマーク - NSPredicateでの正規表現について。その2

2015 年 8 月 13 日 コメント 5 件

NSPredicateでの正規表現について。 » サイキョウライン

自分の理解では万策尽きてしまったので、どなたか教えてください。

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

某所で指摘していただいて「\\\\D+」→「.*\\\\D+?.*」として解決できそうだったのですが、新たな問題が。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self matches '.*\\\\D+?.*'"];
NSLog(@"%d", [predicate evaluateWithObject:@"1234567"]);        //=> 0
NSLog(@"%d", [predicate evaluateWithObject:@"1234567"]); //=> 0

え?なんなの?¥dと¥Dは全角半角関係ないの?どこ仕様?それどこ仕様よ?

カテゴリー: iOS タグ: