您的位置:首页 > 移动开发 > IOS开发

IOS 正则表达式的坑

2015-12-04 10:14 519 查看
测试方法:

//正则表达式校验

-(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>)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: