我正在尝试检查是否NSString
为特定格式。dd:dd:dd。我在想NSRegularExpression
。就像是
/^(\d)\d:\d\d:\d\d)$/ ?
您是否尝试过类似的方法:
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\d{2}:\d{2}:\d{2}$"
options:0
error:&error];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:string
options:0
range:NSMakeRange(0, [string length])];
(我没有测试它,因为我现在不能,但它应该可以工作)
我建议使用RegexKitLite
有了这个并假设在 dd:dd:dd 'd' 实际上代表 0-9 之间的一个数字,鉴于 Grijesh 的附加评论,它应该很容易实现你需要的东西。
这是从 RegexKitLite 页面复制的示例:
// finds phone number in format nnn-nnn-nnnn
NSString *regEx = @"{3}-[0-9]{3}-[0-9]{4}";
NSString *match = [textView.text stringByMatching:regEx];
if ([match isEqual:@""] == NO) {
NSLog(@"Phone number is %@", match);
} else {
NSLog(@"Not found.");
}
更新:
NSString *idRegex = @"[0-9][0-9]:[0-9][0-9]:[0-9][0-9]";
NSPredicate *idTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", idRegex];
for (NSString * str in newArrAfterPars) {
if ([idTest evaluateWithObject:str]) {
}
}