美文网首页
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