`
mrjeye
  • 浏览: 178620 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

NSPredicate及正则表达式的使用心得 分享

 
阅读更多
判断字符串首字母是否为字母。
Objective-c代码
NSString *regex = @"[A-Za-z]+";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

if ([predicate evaluateWithObject:aString]) {
}

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.

字符串替换:
Objective-c代码
NSError* error = NULL;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(encoding=\")[^\"]+(\")"
options:0
error:&error];
NSString* sample = @"";
NSLog(@"Start:%@",sample);
NSString* result = [regex stringByReplacingMatchesInString:sample
options:0
range:NSMakeRange(0, sample.length)
withTemplate:@"$1utf-8$2"];
NSLog(@"Result:%@", result);

NSError* error = NULL;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(encoding=\")[^\"]+(\")"
options:0
error:&error];
NSString* sample = @"";
NSLog(@"Start:%@",sample);
NSString* result = [regex stringByReplacingMatchesInString:sample
options:0
range:NSMakeRange(0, sample.length)
withTemplate:@"$1utf-8$2"];
NSLog(@"Result:%@", result);


from:http://lovelysimon.blog.sohu.com/190483498.html
分享到:
评论

相关推荐

    正则表达式在IOS中的应用及IOS中三种正则表达式的使用与比较

    例如,你可以使用`NSRegularExpression`的`predicateWithPattern:`方法创建一个谓词,然后使用`evaluateWithObject:`方法来判断字符串是否符合该正则表达式。 ```swift let regex = try! NSRegularExpression...

    正则表达式判断手机号码

    在iOS开发中,我们可以使用`NSPredicate`类来应用正则表达式进行手机号码的验证。以下是一个简单的Swift示例: ```swift let phoneNumber = "13812345678" let regexString = "^1[3-9]\\d{9}$" let predicate = ...

    IOS中NSPredicate和NSRegularExpression校验正则表达式区别

    NSPredicate的使用方式是通过创建一个NSPredicate对象,并将正则表达式作为格式字符串传递给它,然后使用evaluateWithObject方法来判断字符串是否匹配正则表达式。 ``` NSPredicate *predicate = [NSPredicate ...

    iOS中常见正则表达式验证方法

    本文将详细介绍在iOS平台如何使用正则表达式来进行身份证号码、手机号和军官证的有效性验证。 首先,让我们来看如何在iOS中验证手机号码。手机号码的验证主要是通过正则表达式来匹配手机号码的号码段和位数。在示例...

    正则表达式例子

    同样,我们可以使用`NSPredicate`来评估输入的字符串是否符合这个正则表达式。 在Cocoa中,`NSPredicate`提供了一种类似SQL查询的方式来描述查询条件,如`BETWEEN`、`IN`、`BEGINWITH`、`ENDWITH`、`CONTAINS`和`...

    常用的正则表达式判断手机号邮箱等

    这里我们将深入探讨如何使用正则表达式来判断手机号和邮箱的合法性。 首先,手机号码的格式在中国大陆通常是11位数字,通常以13、14、15、16、17、18、19开头。一个简单的手机号正则表达式可以写为: ```regex ^1...

    ios-运用正则表达式判断移动、联通、电信手机号码格式.zip

    在iOS开发中,正则表达式(Regular Expression)是一种强大...通过学习和理解这段代码,开发者可以学习到如何在iOS应用中使用正则表达式进行数据验证,并进一步扩展到其他类型的数据格式验证,如邮箱地址、身份证号等。

    正则表达式验证用户名、密码、手机号码、身份证(推荐)

    正则表达式是一种强大的文本处理工具,常用于数据...在iOS开发中,`NSPredicate` 通常与正则表达式结合使用,简化了验证过程。熟练掌握正则表达式能够提高代码的效率和质量,对于开发人员来说是一项非常重要的技能。

    iOS原生正则表达式以及NSArray快捷过滤

    NSPredicate应用,包括以下几个部分: 1、字符串,正则表达式的匹配; 2、字符串数组NSArray和NSMutableArray的快捷过滤方式; 3、自定义对象数组NSArray和NSMutableArray的快捷过滤方式;

    IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母

    在iOS中,我们可以使用Objective-C的`NSPredicate`类结合正则表达式来实现这个功能。以下是一个简单的示例: ```objc + (BOOL)judgePassWordLegal:(NSString *)pass { BOOL result = NO; if ([pass length] &gt;= ...

    IOS正则表达式之验证密码身份证手机号

    这些验证方法都是基于`NSPredicate`的`evaluateWithObject:`方法,该方法使用正则表达式模式检查输入字符串是否匹配。将这些方法封装到静态类中,使得在整个项目中可以方便地调用,提高了代码的复用性。 总之,正则...

    objective-c中正则表达式

    在Objective-C中,我们通常使用NSRegularExpression类来操作正则表达式。首先,我们需要了解一些基础的正则表达式语法,比如: 1. `[ ]`:字符集,表示匹配括号内任意一个字符。例如,`[abc]`将匹配'a'、'b'或'c'。...

    iOS 正则表达式判断纯数字及匹配11位手机号码的方法

    在iOS中,可以使用`NSPredicate`类来判断一个字符串是否匹配这个正则表达式。具体方法是创建一个`NSPredicate`实例,使用`SELF MATCHES`格式指定正则表达式,然后通过`evaluateWithObject:`方法来评估。如果字符串...

    iOS中使用正则表达式NSRegularExpression 来验证textfiled输入的内容

    何谓正则表达式 正则表达式(regular expression),在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换...

    iOS 正则表达式判断手机号码、固话

    为了判断一个输入的字符串是否符合以上任一运营商的手机号码,我们可以使用`NSPredicate`进行正则表达式的匹配。例如: ```swift let mobileNum = "13812345678" // 假设这是用户的输入 let MOBILE = "^1(3[0-9]|4...

    iOS App开发中Objective-C使用正则表达式进行匹配的方法

    iOS中有三种方式来实现正则表达式的匹配。现在将他们都记录在这里: 1.利用NSPredicate(谓词)匹配 例如匹配有效邮箱: NSString *email = @“nijino_saki@163.com”; NSString *regex = @[A-Z0-9a-z._%+-]+@...

    正则表达式限制 账号 密码 邮箱 身份证 手机号的相关代码

    例如,在Objective-C中可以使用`NSPredicate`的`SELFMATCHES`方法来应用正则表达式。 9. 编程实现正则表达式匹配:在实现正则表达式功能时,可以使用特定编程语言的内置方法或库函数进行字符串匹配和验证。如在...

Global site tag (gtag.js) - Google Analytics