iOS正则表达式

辛乐IP属地: 上海
0.313字数 0阅读 361
 // 其中^[0-9]+$表示字符串中只能包含>=1个0-9的数字。
    NSString* numberRE=@"[A-Z]";
    NSString *textString = @"aBDc876";
    
    //1.谓词和正则表达式配合使用,这相当于re的MATCHES模式全匹配
    NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",numberRE];
    BOOL r1 = [numberPre evaluateWithObject:textString];
    NSLog(@"r1:%i",r1);
    
    //2.字符串查找,注意NSRegularExpressionSearch这里是正则search模式
    NSRange range = [textString rangeOfString:numberRE options:NSRegularExpressionSearch];
    if (range.location != NSNotFound) {
        NSLog(@"r2:%@", [textString substringWithRange:range]);
    }

/**
NSRegularExpressioncasesincensitive=1<<0,/*匹配不区分大小写的模式中的字母*/
NSRegularExpressionalowcommentsandwitespace=1<<1,/*忽略模式中的空格和#-前缀注释*/
NSRegularExpressionIgnoreMetacharacters=1<<2,/*将整个模式视为文本字符串*/
NSRegularExpressionDotMatchesLineSeparators=1<<3,/*允许。匹配任何字符,包括行分隔符*/
NSRegularExpressionAnchorsMatchLines=1<<4,/*允许^和$匹配行首和行尾*/
NSRegularExpressionUseUnixLineSeparators=1<<5,/*仅将\n视为行分隔符(否则,将使用所有标准行分隔符)*/
NSRegularExpressionuseunicodewordbordings=1<<6/*使用Unicode TR#29指定单词边界(否则,将使用传统的正则表达式单词边界)*/
*/

    //3.正则表达式类(NSRegularExpression),根据不同的枚举NSRegularExpressionDotMatchesLineSeparators选择不同的正则匹配模式
    NSError *error = NULL;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:numberRE options:NSRegularExpressionDotMatchesLineSeparators error:&error];
//3.1找到第一个    
NSTextCheckingResult *result1 = [regex firstMatchInString:textString options:0 range:NSMakeRange(0, [textString length])];
    if (result1) {
       NSLog(@"r3_1:%@ %@",result1,[textString substringWithRange:result1.range]);
    }
    
//3.2找出全部结果
    NSArray *resultArr = [regex matchesInString:textString options:(0) range:NSMakeRange(0, [textString length])];
    if (resultArr.count > 0) {
        for (NSTextCheckingResult *result in resultArr) {
            NSLog(@"r3_2:%@ %@",result,[textString substringWithRange:result.range]);
        }
    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
2人点赞
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
辛乐资源分享,共同进步,总结自己的经验,收集他人的代码,利己利人~
总资产28共写了1.1W字获得59个赞共25个粉丝

推荐阅读更多精彩内容