美文网首页
iOS正则表达式

iOS正则表达式

作者: 辛乐 | 来源:发表于2021-07-06 18:35 被阅读0次
     // 其中^[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]);
            }
        }
    
    

    相关文章

      网友评论

          本文标题:iOS正则表达式

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