NSPredicate и Regex - PullRequest
       15

NSPredicate и Regex

11 голосов
/ 17 марта 2010

Может кто-нибудь помочь мне с использованием Regex с NSPredicate?

NSString *regex = @"(?:[A-Za-z0-9])";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:mystring])
{
  //do something
}

тестирование вышеупомянутого с mystring - qstring123, похоже, не работает. Я ожидаю, что он войдет в условие if, потому что он предположительно должен соответствовать регулярному выражению.

Кроме того, мне нужно регулярное выражение для буквенных чисел, допускающее запятые и пробелы

это будет работать?

@"(?:[A-Za-z0-9])*(?:,[A-sa-z0-9)*(?:\s[A-sa-s0-9])"

Пожалуйста, помогите.

1 Ответ

8 голосов
/ 17 марта 2010

Из моих экспериментов он пытается сопоставить регулярное выражение со всей строкой, и не будет совпадать внутри строки.

Следовательно, регулярное выражение [a-zA-Z0-9]+ работает, а [a-zA-Z0-9] - нет.

Имея это в виду, вы можете переделать свой предикат сопоставления запятых или использовать более полнофункциональное решение для регулярных выражений, такое как удивительные RegexKit и RegexKitLite .

...