正则表达式是通过特定的语法来查找指定字符串中的符合要求的子串,比如在一串数字中找到电话号,多用于图文混排
正则表达式基本语法:
简单几个例子
1.@"abc" : 在目标字符串中查找内容为 @"abc"的字串
2.@"[abc]": 在目标字符串中查找内容为 @"a" 或者 @"b" 或者 @"c"的字串
3.@"[0-9]": 在目标字符串中查找内容为 数字的字串 如@"1", @"2";
4.@"[0-9][a-z]" :在目标字符串中查找内容为 一个数字后有一个字母的字串, 如@"1a", @"1d"
5.@"[0-9a-z]" 在目标字符串中查找内容为 字母或数字的子串 如@"1" ,@"z"
还有很多不一一写出来了, 一般也用不到,有需要可以再网上搜
开发中正则表达式的使用
定义一个包含电话号码的字符串,
NSString *str =@"hjadhj1233asdwa51013223332333jkhsdkj123456789511hwua5462jsn";
NSRegularExpression *a = [[NSRegularExpressionalloc] initWithPattern:@"1[1356789][0-9]{9}"options:0 error:nil];
pattern 就是规则 以1开头 1或3或56789第二, 后面有九个数字{}代表重复次数,{9}表示重复9次,也可以这么写{1, 3}表示重复1次或者3次都符合规则NSArray *array = [amatchesInString:str options:0 range:NSMakeRange(0, str.length)];
打印array
NSLog(@"%@", array);
// 打印结果
for (NSTextCheckingResult * res in array) {
NSLog(@" %@ %@", NSStringFromRange(res.range), [str substringWithRange:res.range]);
}