谓词的补充——使用谓词还可以进行正则表达式的验证
来源:互联网 发布:联合培养博士 知乎 编辑:程序博客网 时间:2024/06/05 12:07
NSPredicate 谓词的主要用于以下几个方面:
(一)已知数组NSArray都有一个filteredArrayUsingPredicate方法,可以根据指定的NSPredicate对象进行内容过滤。
(二) 除此之外Core Data框架中可以为查询请求NSFetchRequest类的对象指定NSPRedicate对象作为查询条件。
(三)NSPredicate类还可以使用matches 进行设置正则表达式, 使用evaluateWithObject:对对象进行匹配并根据匹配是否成功返回BOOL值。
新建工程如下:
编辑首控制器的.m文件 进行验证如下:
//// ViewController.m// 正则表达式的使用//// Created by apple on 15/10/2.// Copyright (c) 2015年 LiuXun. All rights reserved.//#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // 谓词NSPredicate中的self只仅仅用于字符串数组。但用于指明数组中对象属性也不会出错,没必要 // 注意:self就相当于数组中的一个对象 NSArray *strArray = @[@"abcda",@"acddf",@"acddfdff",@"wqwewe",@"xydsdsd"]; // 使用谓词取出第三个字符是d的字符串 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self like '??d*' "]; NSArray *filteArray = [strArray filteredArrayUsingPredicate:predicate]; for(NSString *filterStr in filteArray){ NSLog(@"%@",filterStr); } // 谓词条件语句使用MATCHES 来匹配正则语句——匹配语句 NSString *regex1 = @"^E.+e$"; // 以E开头,以小写e结尾的字符 NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"self matches %@",regex1]; if ([predicate2 evaluateWithObject:@"Easdsdsddsdsdse"]) { NSLog(@"匹配"); } /* 当为数组指定过滤器时,调用数组的对象方法filteredArrayUsingPredicate:方法指定NSPredicate对象。 当验证某个值或字符串对象是否符合指定的条件时 ,使用谓词的对象方法evaluateWithObject:方法 当Core Data中为查询请求指定条件时,使用NSFetchRequest类的对象方法 .predicate =XXX 赋值 */}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end运行结果如下:
0 0
- 谓词的补充——使用谓词还可以进行正则表达式的验证
- iOS开发,谓词(NSPredicate)的用法:(二)谓词和正则表达式配合使用,进行表单内容判断
- iOS开发,谓词(NSPredicate)的用法:(二)谓词和正则表达式配合使用,进行表单内容判断
- iOS 常用的正则表达式和谓词的配合使用
- iOS学习笔记39-iOS开发,谓词(NSPredicate)的用法:(二)谓词和正则表达式配合使用,进行表单内容判断
- ios 谓词的使用
- 谓词(NSPredicate)的使用
- 谓词的使用(predicate)
- 谓词的使用
- 正则表达式和谓词
- iOS之正则表达式的使用和谓词(NSPredicate)的使用(三)
- 使用谓词进行查询
- 关于谓词NSPredicate的使用
- 谓词的使用:模糊搜索
- iOS之谓词的使用
- iOS谓词的简单使用
- IOS中谓词的使用
- 谓词技术的使用 NSPredicate
- 链表(Java)
- UIstoryboard
- 工作常用第三方框架
- CodeForces 415A Mashmokh and Lights
- HDU 2104 GCD
- 谓词的补充——使用谓词还可以进行正则表达式的验证
- 进程间的通信(浅谈)
- ocp-37
- 大数字相加
- MyISAM vs InnoDB 分析之一
- HashTable的实现原理分析
- ocp-38
- hdu 1429 状态搜索
- hdu1048 The Hardest Problem Ever