NSPredicate と正規表現の組み合わせはちょっとややこしい。 例えば、正規表現で数字列を検出する場合 \d+ を用いる。 NSString でこの文字列を扱う場合 \ がエスケープ文字なので、これをこのまま NSString に入れると Unknown escape sequence '\d' というエラーが出て以下のような結果になる。 NSLog(@"%@", @"\d+"); // d+ NSString で \d+ という文字列を表す場合はエスケープ文字であるバックスラッシュの直前にバックスラッシュを付けて、バックスラッシュ自体を文字として扱うようにする。 NSLog(@"%@", @"\\d+"); // \d+ 例えば NSString の rangeOfString: メソッドでの正規表現を用いた検索は以下のようになる。 NSRange range = [@"123"