测试方法:
//正则表达式校验
-(BOOL)calibrateWithRegex:(NSString *)regex value:(NSString *)value {
BOOL valide=NO;
NSError *error =NULL;
NSRegularExpression *regularExp=[NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:&error];
//匹配结果为数组
NSArray *resultArray=[regularExp matchesInString:value options:NSMatchingReportProgress range:NSMakeRange(0, value.length)];
NSLog(@"结果大小:%d",[resultArray count]);
for (NSTextCheckingResult *mystrRang in resultArray) {
NSString *mystr=[value substringWithRange:mystrRang.range];
NSLog(@"校验结果为:%@",mystr);
}
//获取第一个匹配结果
NSTextCheckingResult *result=[regularExp firstMatchInString:value options:0 range:NSMakeRange(0, value.length)];
NSString *resultStr=[value substringWithRange:result.range];
// NSLog(@"校验结果为:%@",resultStr);
if ([resultStr isEqualToString:value]) {
valide=YES;
}
return valide;
}
1.单斜杆(\)记得转为双斜杆(\\)
2.ios正则表达式无法在断言里面使用限定符:
红色标注为不能使用的部分,
列如:(查找html标签)
错误的写法:(?<=<(\\w+)>)[^<]*(?=</\\1>)
正确的写法:(?<=<(\\w{0,6})>)[^<]*(?=</\\1>)