NSPredicate и Regex
Может кто-нибудь помочь мне с использованием Regex с NSPredicate?
NSString *regex = @"(?:[A-Za-z0-9])";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
if ([pred evaluateWithObject:mystring])
{
//do something
}
тестирование вышеуказанного wth mystring - qstring123, похоже, не работает. Я ожидаю, что он войдет в условие if, потому что он предположительно должен соответствовать регулярному выражению.
Кроме того, мне нужно регулярное выражение для альфа-номера, разрешающее запятые и пробелы.
будет ли это работать?
@"(?:[A-Za-z0-9])*(?:,[A-sa-z0-9)*(?:\s[A-sa-s0-9])"
Пожалуйста, помогите.
Ответы
Ответ 1
Из моего эксперимента он пытается сопоставить регулярное выражение со всей строкой и не будет соответствовать внутри строки.
Поэтому регулярное выражение [a-zA-Z0-9]+
работает, но [a-zA-Z0-9]
не работает.
С учетом этого вы можете захотеть переработать свой предикат, соответствующий запятой, или использовать более полнофункциональное регулярное выражение, например удивительно удивительное RegexKit и RegexKitLite.