Objective-C RegEx
Objective-C RegEx
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];
==========================================================================

