iOS正则表达式解决实际问题

问题:上海市徐汇区桂林路158号1202室

字符串长度不固定,数字长度也不固定。截取第二组数字。

 

方法一:【正则表达式】

NSString * str = @"上海市徐汇区桂林路158号1202室";

    NSCharacterSet *nonDigitCharacterSet = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];

    //获取字符串中的数字

//    str = [[str componentsSeparatedByCharactersInSet:nonDigitCharacterSet] componentsJoinedByString:@""];

    NSArray *strArr = [str componentsSeparatedByCharactersInSet:nonDigitCharacterSet];

//    NSArray *strArr = [str componentsSeparatedByString:@""];

    NSLog(@"%@",strArr);

打印结果:需要自己取想要的那一组数字,适用范围广

 

 

方法二:【正则表达式】

 

 

    NSString *searchText = @"满29元减500元";
    NSError *error = NULL;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\d+" options:NSRegularExpressionCaseInsensitive error:&error];
    NSArray <NSTextCheckingResult *> *results = [regex matchesInString:searchText options:0 range:NSMakeRange(0, [searchText length])];
    if (results) {
        NSLog(@"%@", [searchText substringWithRange:results[1].range]);
    }

打印结果:可以直接解决实际问题

注意:数组自己判断一下长度

         记得判断长度, 小心数组越界

 

posted on 2019-11-26 10:56  在一起的浅蓝色  阅读(221)  评论(0编辑  收藏  举报

导航