zoukankan      html  css  js  c++  java
  • 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]);
        }

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

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

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

  • 相关阅读:
    POJ 1062 坑爹的聘礼(枚举等级差选择性找边)
    c++ string函数详细返回值及用法!
    POJ 2240 利率变权值 Floyd变乘法
    POJ 1797 最大运载量
    API code
    编程题目的讨论
    C语言位运算符:与、或、异或、取反、左移和右移
    &与&& C语言
    反思
    CreateWindow的出错解决
  • 原文地址:https://www.cnblogs.com/liuzhi20101016/p/11934009.html
Copyright © 2011-2022 走看看