使用开源库 Objective-C RegEx Categories 处理正则表达式
来源:互联网 发布:人工智能英文定义 编辑:程序博客网 时间:2024/05/24 01:36
Objective-C RegEx Categories
https://github.com/bendytree/Objective-C-RegEx-Categories
使用说明:将 RegExCategories.h RegExCategories.m 文件拖入工程中引入头文件即可.
==========================================================================
//匹配电话号码(手机号以13, 15,18开头,八个 \d 数字字符)
BOOL isMatch = [@"15910514636" isMatch:RX(@"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$")];
NSLog(@"%d", isMatch);
//匹配邮箱
BOOL isMatch = [@"705786230@qq.com" isMatch:RX(@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}")];
NSLog(@"%d", isMatch);
//匹配用户名(用户名长度为6-20位之间,大小写字母或者数字均可)
BOOL isMatch = [@"705786230" isMatch:RX(@"^[A-Za-z0-9]{6,20}+$")];
NSLog(@"%d", isMatch);
//匹配身份证号
BOOL isMatch = [@"42120919831025587X" isMatch:RX(@"^(\\d{14}|\\d{17})(\\d|[xX])$")];
NSLog(@"%d", isMatch);
==========================================================================
//创建一个正则表达式
Rx* rx = RX(@"\\d");
Rx* rx = [Rx rx:@"\\d"];
Rx* rx = [Rx rx:@"\\d" ignoreCase:YES];
//判断字符串是否匹配
BOOL isMatch = [@"2345" isMatch:RX(@"^\\d+$")];
//获取匹配的字符串
NSString* age = [@"My dog is 3." firstMatch:RX(@"\\d+")];
//获取匹配的结果存储进数组
NSArray* words = [@"Hey pal" match:RX(@"\\w+")];
// words => @[ @"Hey", @"pal" ]
//能获取详细信息的匹配
RxMatch* match = [@"12.34, 56.78" firstMatchWithDetails:RX(@"\\d+([.]\\d+)")];
// match.value => @"12.34"
// match.range => NSRangeMake(0, 5);
// match.original => @"12.34, 56.78";
// match.groups => @[ RxMatchGroup, RxMatchGroup ];
//使用模板来替换匹配的字符串
NSString* result = [@"My dog is 12." replace:RX(@"\\d+") with:@"old"];
// result => @"My dog is old."
//使用block来替换
NSString* result = [RX(@"\\w+") replace:@"hi bud" withBlock:^(NSString* match){
return [NSString stringWithFormat:@"%i", match.length];
}];
// result => @"2 3"
//获取详细匹配信息的block方式
NSString* result = [RX(@"\\w+") replace:@"hi bud" withDetailsBlock:^(RxMatch* match){
return [NSString stringWithFormat:@"%i", match.value.length];
}];
// result => @"2 3"
==========================================================================
总结:正则表达式可用来按照一定模式来实现匹配字符串,替换字符串等等强大的功能,详细使用说明请参考该开源框架的使用示例.
其他:使用谓词来处理正则表达式示例
==========================================================================
NSString *email = @"YouXianMing@163.com";
NSString *regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isValid = [predicate evaluateWithObject:email];
==========================================================================
- 使用开源库 Objective-C RegEx Categories 处理正则表达式
- 使用开源库 Objective-C RegEx Categories 处理正则表达式
- 使用开源库 Objective-C RegEx Categories 处理正则表达式
- C++:Regex正则表达式
- C++:Regex正则表达式
- C++:Regex正则表达式
- 【C/C++】boost regex正则表达式的安装及使用
- C语言正则表达式regex
- Objective-C: Categories
- Categories in Objective-C
- Objective-C:Categories
- Objective-C 正则表达式的使用
- c/c++ regex正则使用
- c语言中的正则表达式regex.h
- c语言中的正则表达式regex.h
- Linux C 正则表达式运用(regex.h)
- 日志 c/c++ 正则表达式 regex
- C语言的正则表达式 regex
- USB设备无法使用
- select,epoll,poll
- Java Basic Knowledage
- Xcode 5.1 编译模拟器以及真机都能使用的静态库
- 深入了解Struts2返回JSON数据的原理及具体应用范例
- 使用开源库 Objective-C RegEx Categories 处理正则表达式
- Fragments(碎片)全面总结(—)
- 如何在 Xcode 中修改应用的名字
- 区间dp-添加最少字符成为回文串
- 使用开源库 SVPullToRefresh 实现上拉加载下拉刷新
- 关于Java接口的一点儿知识
- boost准模板库time_duration类的使用
- 使用系统自带的 UIRefreshControl 实现下拉刷新
- 代码混淆方法之二(tomcat下面代码加密)