Есть ли эквивалент pattern.compile()
для регулярных выражений в какао Touch? Можно ли проверить, является ли данное выражение регулярного выражения без ошибок? Будет ли NSRegularExpression
NSMatchingInternalError
справиться с этим тестовым случаем?Проверка правильности в какао Touch
1
A
ответ
2
pattern.compile()
эквивалент будет: regularExpressionWithPattern:options:error:
.
В качестве примера:
NSError *error;
NSString *pattern = @"[z-a]";
NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
if (re == nil) {
NSLog(@"error: %@", error);
}
возвращает ошибку:
Error Domain=NSCocoaErrorDomain Code=2048 "The value “[z-a]” is invalid." UserInfo=0x100111f90 {NSInvalidValue=[z-a]}
Похоже, NSMatchingInternalError
могут быть получены в ходе операции согласования, а не во время создания RegEx.
Я пробовал плохое регулярное выражение и получил: операция не может быть завершена. (Ошибка какао 2048.) – Alex