IOS NSPredicate 及正则表达式
来源:互联网 发布:工商信息查询网大数据 编辑:程序博客网 时间:2024/04/30 19:20
一、Predicate
Predicate译为断言。
官网:Predicates wrap some combination of expressions and operators and when evaluated return a BOOL.
常用方法:
+ (NSPredicate *)predicateWithFormat:(NSString *)predicateFormat, ...;
常用Format:
(1)比较运算符>,<,==,>=,<=,!=
可用于数值及字符串
例:@"num > 100"
(2)范围运算符:IN、BETWEEN
例:@"num BETWEEN {1,5}"
@"addr IN {'shanghai','beijing'}"
(3)字符串本身:SELF
例:@“SELF == ‘APPLE’"
(4)字符串相关:BEGINSWITH、ENDSWITH、CONTAINS
例:@"name CONTAIN[cd] 'ang'" //包含某个字符串
@"name BEGINSWITH[c] 'sh'" //以某个字符串开头
@"name ENDSWITH[d] 'ang'" //以某个字符串结束
注:[c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,也不区分发音符号。
注:CONTAIN 只能判断是否包含特定字符,而非正则表达式
(5)通配符:LIKE
例:@"name LIKE[cd] '*er*'" //*代表通配符,Like也接受[cd].
@"name LIKE[cd] '???er*'"
(6)正则表达式:MATCHES
例:NSString *regex = @"^A.+e$"; //以A开头,e结尾
@"name MATCHES %@",regex
NSString *wordReg = @"^[a-zA-Z0-9]\\w{5,15}$"; NSString *digitalReg = @"1"; NSString *lettersReg = @"a"; NSPredicate *wordPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",wordReg]; NSPredicate *digitalPre = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", digitalReg]; NSPredicate *lettersPre = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@",lettersReg]; MPLog(@"word:%d digital:%d letters:%d",[wordPre evaluateWithObject:text],[digitalPre evaluateWithObject:text],[lettersPre evaluateWithObject:text]); if ([digitalPre evaluateWithObject:text] == YES&&[lettersPre evaluateWithObject:text]==YES&&[wordPre evaluateWithObject:text]==YES) return YES; else return NO;
二、正则 NSRegularExpression
- (NSTextCheckingResult *)firstMatchInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range;
示例:
NSString *urlString = @"sfdshttp://www.baidu.com"; NSError *error; //http+:[^\\s]* 这是检测网址的正则表达式 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"http+:[^\\s]*" options:0 error:&error]; if (regex != nil) { NSTextCheckingResult *firstMatch = [regex firstMatchInString:urlString options:0 range:NSMakeRange(0, [urlString length])]; if (firstMatch) { NSRange resultRange = [firstMatch rangeAtIndex:0]; //从urlString中截取数据 NSString *result = [urlString substringWithRange:resultRange]; MPLog(@"%@",result); } } NSRegularExpression *wordReg = [NSRegularExpression regularExpressionWithPattern:@"^[a-zA-Z0-9]\\w{5,15}$" options:0 error:&error]; NSRegularExpression *digitalReg = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z]" options:0 error:&error]; NSRegularExpression *lettersReg = [NSRegularExpression regularExpressionWithPattern:@"[0-9]" options:0 error:&error]; NSTextCheckingResult *result1 = [wordReg firstMatchInString:text options:0 range:NSMakeRange(0, text.length)]; NSTextCheckingResult *result2 = [digitalReg firstMatchInString:text options:0 range:NSMakeRange(0, text.length)]; NSTextCheckingResult *result3 = [lettersReg firstMatchInString:text options:0 range:NSMakeRange(0, text.length)]; MPLog(@"wordReg:%d digitalReg:%d lettersReg:%d",[result1 rangeAtIndex:0].length,[result2 rangeAtIndex:0].length,[result3 rangeAtIndex:0].length); if ([result1 rangeAtIndex:0].length>0&&[result2 rangeAtIndex:0].length>0&&[result3 rangeAtIndex:0].length) { return YES; }else { return NO; }
- IOS NSPredicate 及正则表达式
- iOS中正则表达式的使用--NSPredicate
- IOS之NSPredicate正则表达式(一)
- iOS中正则表达式的使用--NSPredicate
- iOS中正则表达式的使用--NSPredicate
- iOS中正则表达式的使用--NSPredicate
- IOS 正则表达式(NSPredicate的使用)
- NSPredicate及正则表达式的使用心得
- NSPredicate使用及正则表达式简单使用
- NSPredicate 小结 &正则表达式
- ios中NSPredicate的用法(正则表达式使用)
- IOS自带正则表达式NSPredicate的使用
- iOS NSPredicate 查询、搜索, 各种验证, 正则表达式
- iOS TextField正则表达式输入验证 NSPredicate谓词匹配
- iOS开发之正则表达式快速教程(NSPredicate、NSRegularExpression)
- 正则表达式使用 NSPredicate使用
- NSPredicate 与 NSRegularExpression 正则表达式
- iOS-Webview及正则表达式
- 用超链接a来实现邮件、拨号、发送短信功能
- Spring MVC中一般类使用service
- SecureCRT上传/下载linux文件
- APP不通过AppStore下载,APP应用内完成升级(不需要重新上传、审核)---他人文章链接,自己留着
- [动态规划] 蛇行序列(snake sequence)
- IOS NSPredicate 及正则表达式
- VC++6.0中MFC图片控件无法利用类向导添加成员变量的解决
- value stack contents 和 stack context(http://www.cnblogs.com/bukudekong/archive/2012/04/08/2437398.h)
- 行为设计模式---观察者模式(Observer)
- Word Break
- Hibernate,一对一的关联关系
- CalTech machine learning video 5 note , training vs. testing
- 2.1.7保留-表格相关元素
- HDU 1024 Max Sum Plus Plus