【发布时间】:2014-01-06 07:37:36
【问题描述】:
如果 NSString 类似于 @"{A5B8A206-E14D-429B-BEB0-2DD0575F3BC0}",则该方法应返回 TRUE,而对于类似 @"bla bla bla" 的 NSString,该方法应返回 FALSE
我正在使用类似的东西:
- (BOOL)isValidGUID {
NSError *error;
NSRange range = [[NSRegularExpression regularExpressionWithPattern:@"(?:(\\()|(\\{))?\\b[A-F0-9]{8}(?:-[A-F0-9]{4}){3}-[A-Z0-9]{12}\\b(?(1)\\))(?(2)\\})" options:NSRegularExpressionCaseInsensitive error:&error] rangeOfFirstMatchInString:self.GUID options:0 range:NSMakeRange(0, [self.GUID length])];
if (self.GUID && range.location != NSNotFound && [self.GUID length] == 38) {
return TRUE;
} else {
return NO;
}
}
但它没有像我预期的那样工作。
重要提示:我使用的 GUID 用大括号括起来,如下所示:{A5B8A206-E14D-429B-BEB0-2DD0575F3BC0}
【问题讨论】:
标签: ios iphone objective-c regex nsregularexpression