2015-03-11 2 views
1

Есть ли эквивалент pattern.compile() для регулярных выражений в какао Touch? Можно ли проверить, является ли данное выражение регулярного выражения без ошибок? Будет ли NSRegularExpressionNSMatchingInternalError справиться с этим тестовым случаем?Проверка правильности в какао Touch

ответ

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.

+0

Я пробовал плохое регулярное выражение и получил: операция не может быть завершена. (Ошибка какао 2048.) – Alex