美文网首页
谓词和正则表达式

谓词和正则表达式

作者: 六横六竖亚 | 来源:发表于2017-09-19 12:03 被阅读24次

正则表达式

iOS中,通过传入正则表达式字符串,获取到NSRegularExpression对象,使用matchesInString等相关方法,传入字符串进行匹配,还可使用NSReplacement扩展方法进行正则替换等。如:

//block枚举匹配结果

- (void)enumerateMatchesInString:(NSString*)string options:(NSMatchingOptions)options range:(NSRange)range usingBlock:(void(NS_NOESCAPE^)(NSTextCheckingResult*_Nullableresult,NSMatchingFlagsflags,BOOL*stop))block;

//返回匹配数组

- (NSArray <NSTextCheckingResult *> *)matchesInString:(NSString*)string options:(NSMatchingOptions)options range:(NSRange)range;

//使用templ根据正则表达式对string进行正则替换

- (NSString*)stringByReplacingMatchesInString:(NSString*)string options:(NSMatchingOptions)options range:(NSRange)range withTemplate:(NSString*)templ;

常用正则列举

电话号码:^1[34578]\\d{9}$(^匹配字符串开始位置;[]字符集合或范围;\转义字符向后引用用于转义;\d匹配一个数字;{n}匹配n次;{n,m}匹配n-m次;$匹配字符串结束位置)

中文字符:[\u4e00-\u9fa5]

纯数字:^[0-9]*$

URL(含协议或直接www.开头):\\b(([\\w-]+://?|www[.])[^\\s()<>]+(?:\\([\\w\\d]+\\)|([^[:punct:]\\s]|/)))

谓词(NSPredicate)

组成:表达式+运算符+值。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF = 123"];

NSPredicate对象可通过evaluateWithObject方法判断对象是否满足谓词表达式。

NSPredicate对象可作为NSArray、NSMutableArray的方法(如filteredArrayUsingPredicate)的传入参数进行数组筛选。

运算符

比较运算符(=/==,<=,!=,BETWEEN):@"SELF BETWEEN {100, 200}"

逻辑运算符(&& / AND,|| / OR,! / NOT):@"SELF > 2 && SELF < 5"

字符串匹配运算符(BEGINSWITH、ENDSWITH、CONTAINS、LIKE、MATCHES):@"%@ LIKE '*test?'", abctestz

注:?代表单个通配符,*代表任意多个字符,运算符后使用[c]不区分大小写。

注:MATCHES用于匹配正则表达式@"SELF MATCHES %@", ^[1][3-8]\\d{9}$。

集合运算符(ALL,ANY,SOME,NONE,IN)

简单使用

1、判断模型中的属性是否满足谓词表达式

NSPredicate *testPred = [NSPredicate predicateWithFormat:@"age > 18"];

[testPred evaluateWithObject:personModel];

2、filteredArrayUsingPredicate过滤数组集合

3、使用占位符参数(%K,%@,SELF等)

相关文章

  • 正则表达式

    https://www.cnblogs.com/wfwenchao/p/4307992.html谓词和正则表达式的...

  • iOS正则表达式的使用方式

    1.正则表达式与NSPredicate(谓词)连用- (BOOL)numExpression:(NSString ...

  • iOS 搜索栏的算法

    NSPredicate谓词 搜索框的搜索功能需要用谓词来实现,同时它还可以使用正则表达式,可以实现各种邮箱验证,手...

  • iOS-正则表达式与谓词

    看几篇博客,学习一下正则表达式和谓词。方便总结一下,以备后用。做过iOS开发的童鞋们,应该都用过正则表达式。可以帮...

  • 谓词和正则表达式

    正则表达式 iOS中,通过传入正则表达式字符串,获取到NSRegularExpression对象,使用matche...

  • 课外学习

    1、iOS Autolayout Interface Builder 技巧 3、iOS-正则表达式与谓词 4、i...

  • 正则表达式简单学习

    1、NSPredicate 注意:谓词与正则表达式连用,只有字符串所有位数匹配才会返回tureeg: 虽说 ^tw...

  • 正则表达式

    iOS中有三种实现正则表达式的匹配: 1.利用NSPredicate(谓词)匹配; 2.利用rangeOfStri...

  • 控制TextFiled只能输入数字

    控制TextFiled只能输入数字 虽然方法有很多,个人推荐这种正则表达式结合谓词的方法,不用循环遍历,控制灵活。...

  • 第二章 SQL谓词的概述(二)

    第二章 SQL谓词的概述(二) 谓词和%SelectMode 所有谓词都使用逻辑(内部存储)数据值进行比较。但是,...

网友评论

      本文标题:谓词和正则表达式

      本文链接:https://www.haomeiwen.com/subject/bgnssxtx.html