Cocoa Touch 中的正则表达式验证

Regex validation in Cocoa Touch

Cocoa Touch 中是否有等同于 pattern.compile() 的正则表达式?是否可以检查给定的正则表达式是否没有错误? NSRegularExpressionNSMatchingInternalError 会处理这个测试用例吗?

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);
}

returns错误:

Error Domain=NSCocoaErrorDomain Code=2048 "The value “[z-a]” is invalid." UserInfo=0x100111f90 {NSInvalidValue=[z-a]}

看起来 NSMatchingInternalError 可以在匹配操作期间生成,而不是在创建 RegEx 期间生成。