记录一点正则表达式的使用。
例如:判断字符串首字母是否为字母。
判断Array中是否包含某一规则的对象,并返回一个数组:
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", regex];
并调用:- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; 方法即可。
获得一个数组中某些对象除外的数组:
NSPredicate *notPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF in %@)", arrayFilter2];且还是要调用- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; 方法。
同样,如果我们想找出某个范围内的对象,创建如下Predicate (这里可以用到所有的比较操作符): NSPredicate *pre = [NSPredicate predicateWithFormat:@"self.*** < 5"];
并调用:- (BOOL)evaluateWithObject:(id)object;方法。
在这里啰嗦一句,如果只是在数组中查找是否存在对象时用indexOfObject,如果不存在则返回为NSNotFound.
字符串替换:
截取字符串如下:
例如:判断字符串首字母是否为字母。
NSString *regex = @"[A-Za-z]+"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; if ([predicate evaluateWithObject:aString]) { }
判断Array中是否包含某一规则的对象,并返回一个数组:
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS %@", regex];
并调用:- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; 方法即可。
获得一个数组中某些对象除外的数组:
NSPredicate *notPredicate = [NSPredicate predicateWithFormat:@"NOT (SELF in %@)", arrayFilter2];且还是要调用- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate; 方法。
同样,如果我们想找出某个范围内的对象,创建如下Predicate (这里可以用到所有的比较操作符): NSPredicate *pre = [NSPredicate predicateWithFormat:@"self.*** < 5"];
并调用:- (BOOL)evaluateWithObject:(id)object;方法。
在这里啰嗦一句,如果只是在数组中查找是否存在对象时用indexOfObject,如果不存在则返回为NSNotFound.
字符串替换:
NSError* error = NULL; NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(encoding=\")[^\"]+(\")" options:0 error:&error]; NSString* sample = @"<xml encoding=\"abc\"></xml><xml encoding=\"def\"></xml><xml encoding=\"ttt\"></xml>"; NSLog(@"Start:%@",sample); NSString* result = [regex stringByReplacingMatchesInString:sample options:0 range:NSMakeRange(0, sample.length) withTemplate:@"$1utf-8$2"]; NSLog(@"Result:%@", result);
截取字符串如下:
//组装一个字符串,需要把里面的网址解析出来 NSString *urlString=@"<meta/><link/><title>1Q84 BOOK1</title></head><body>"; //NSRegularExpression类里面调用表达的方法需要传递一个NSError的参数。下面定义一个 NSError *error; //http+:[^\\s]* 这个表达式是检测一个网址的。(?<=title\>).*(?=</title)截取html文章中的<title></title>中内文字的正则表达式 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=title\\>).*(?=</title)" 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]; //输出结果 NSLog(@"->%@<-",result); } }
发表评论
-
选取相册视频,并获得路径。
2012-07-18 10:18 1652- (NSString*)videoAssetURLT ... -
ad-hoc及企业版app打包之后在itunes中图标为白色的问题
2012-07-03 16:36 1239准备512*512大小的png(将要显示的图片),在终端执行以 ... -
iOS工具类之16进制颜色转为UIColor
2012-06-27 16:33 6705将16进制颜色如#FF0000,转换为UIColor: ... -
调试内存问题
2012-06-12 10:14 675Project -> Edit Scheme -> ... -
[转]iOS开发之详解剪贴板
2011-12-05 11:43 1464概述: 在iOS中, ... -
过滤html标签(修改版)
2011-12-01 10:44 1258- (NSString *)flattenHTML:(NS ... -
[转] iPhone:UIImage 图像截取,等比例缩放
2011-09-29 10:02 7762@interface UIImage(UIImageSc ... -
[转载]iPhone文件系统NSFileManager
2011-09-09 11:41 1014iPhone文件系统:创建、重命名以及删除文件 NSFile ... -
UIImage用imageNamed的内存问题
2011-09-08 09:33 1220@implementation UIImage(imageNa ... -
截屏存图片到相册或者指定路径
2011-06-13 11:15 2707#import <QuartzCore/Quartz ... -
存图片和视频到iPhone相册
2011-04-19 09:33 7587UIImage *img = [UIImage i ... -
选择相册图片并保存
2011-04-19 08:18 1753.h中: <UINavigationControl ... -
Push一个横屏页面
2011-03-28 16:39 2047[[UIDevice currentDevice] setOr ... -
建立到服务器的连接
2011-02-14 10:47 1307在Mac OS X上,可以使用NSHost和NSS ... -
iPhone中的Sqlite3数据库操作
2010-12-27 09:38 1280可将数据库操作写入一个类,这样用起来也很方便。例如: ... -
Cocos2d游戏场景切换
2010-12-15 09:51 2610在游戏中,我们需要点击菜单选项进入相应的画面,而我们常 ... -
NSNotificationCenter随笔
2010-12-10 13:21 1463可在AppDelegate.h中定义,之后可全局使用。 ... -
Category的使用
2010-12-09 16:17 1008Category的用法有时使得程序很方便,可将已有的类 ... -
iPhone判断是否接入网络
2010-12-06 10:41 2343在这里介绍一种较为简单的判断是否连接网络的方法,首先要引入 ... -
手机问题汇总。
2010-09-16 17:24 0主题:http://bbs.dospy.com/blog.ph ...
相关推荐
本文文章通过实例代码给大家讲述了在IOS开发中NSPredicate和NSRegularExpression校验正则表达式区别,需要的朋友赶快学习下吧。
本demo详细讲解了NSPredicate的使用;例如正则表达的使用、把程序中的一个数组中符合数组中内容的元素过滤出来、其它字符串的使用 BEGINSWITH、ENDSWITH、CONTAINS IN、BETWEEN、和match混合使用 比较问题
NSPredicate 的demo。 NSPredicate过滤器的使用方法。
NSPredicate的使用总结,OC中的谓词操作是针对于数组类型的,他就好比数据库中的查询操作,数据源就是数组,这样的好处是我们不需要编写很多代码就可以去操作数组,同时也起到过滤的作用,我们可以编写简单的谓词...
正则表达式在ios中应用 一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符... NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MA
最近常用到NSpredicate ,自己汇总了一些用法,总结NSpredicate 用法,
主要给大家介绍了关于iOS中NSPredicate谓词的使用方法,文中通过示例代码介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索。 可以...
NSPredicate应用,包括以下几个部分: 1、字符串,正则表达式的匹配; 2、字符串数组NSArray和NSMutableArray的快捷过滤方式; 3、自定义对象数组NSArray和NSMutableArray的快捷过滤方式;
Swift_NSPredicate模糊、精确、查找Demo
Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取,用于数组与数组、数组与字符串之间之间数据查询,增删查改,数据比较
iOS中有三种方式来实现正则表达式的匹配。现在将他们都记录在这里: 1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @“nijino_saki@163.com”; NSString *regex = @[A-Z0-9a-z._%+-]+@...
在项目中,我们在验证用户的输入,最简单的方法就是使用正则表达式了,ios系统也提供很方便的方法,让我们可以轻松的来验证用户名,密码,身份证好 ,手机号等; 下面附上我在项目中用到的正则表达式的验证方法, 由于比较...
废话不多说了,下面给大家介绍使用正则表达式验证用户名、密码、手机号码、身份证的写法,需要的的朋友参考下吧 //用户名 + (BOOL) validateUserName:(NSString *)name { NSString *userNameRegex = @"^[A-Za-z0-9...
1、手机号码的验证正则 正则表达式: ^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$ 详细解释 解释: •^…$: ^:开始 $:结束 中间为要处理的字串 •(13[0-9]): 以13开头接下来一位为0-9之间的数 13 : 以13开头 [0-9...
一般都采用正则表达式的形式来做判断,本文列举一些项目中非常实用的一些正则表达式的判断语句,以后开发起来直接复制粘贴就可以,这样大大节省了开发时间,下面不多说,直接上代码。 一、验证移动手机号: + (BOOL...
在某些App应用里面需要填写用户信息(用于验证),有身份证、手机号、军官证等等。下面来跟大家分享一下各自的验证方式。 1.验证 手机号码 ,这个是对... * 移动号段正则表达式 */ NSString *CM_NUM = @^((13[4-9])|