美文网首页
iOS 正则查找字符串中的数字

iOS 正则查找字符串中的数字

作者: 夏天爱大树 | 来源:发表于2017-08-15 17:21 被阅读1147次

需求:对字符串中的金额的颜色修改

传统方法:遍历查找

NSString *str = @"投资券5.89元";
if ([str containsString:@"元"])
    {
        NSString *formStr = @"1234567890.";
        NSArray *arr = [str componentsSeparatedByString:@"元"];
        NSString *targetStr = arr.firstObject;
        NSInteger targetLoc;
        if ([formStr containsString:[targetStr substringWithRange:NSMakeRange(targetStr.length-1, 1)]])
        {
            for (NSInteger i=targetStr.length-1; i>=0; i--)
            {
                if (![formStr containsString:[targetStr substringWithRange:NSMakeRange(i, 1)]])
                {
                    targetLoc = i+1;
                    break;
                }
            }
            NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:model.desc];
            [attributedStr addAttribute:NSForegroundColorAttributeName value:UI_THEME_COLOR range:NSMakeRange(targetLoc, targetStr.length-targetLoc)];
            self.descLabel.text = nil;
            self.descLabel.attributedText = attributedStr;
        }
        else
        {
            self.descLabel.text = str;
        }
    }
    else
    {
        self.descLabel.text = model.desc;
    }

正则查找

 NSString *str = @"投资券5.89元";
    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:str];
    NSRange range = [str rangeOfString:@"\\d[\\d.,]*(?=元)" options:NSRegularExpressionSearch];
    if (range.location != NSNotFound) {
        NSString *subStr = [str substringWithRange:range];
        NSLog(@"%@", subStr);
        
        [attStr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:range];
    }
    self.moneyLabel.attributedText = attStr;
效果图

相关文章

  • iOS 正则查找字符串中的数字

    需求:对字符串中的金额的颜色修改 传统方法:遍历查找 正则查找

  • js 正则表达式

    正则中经常用到的方法 test() :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.v...

  • 正则表达式

    为什么引入正则表达式?:正则表达式可查找一类的字符串 正则表达式: 单字符匹配: \d匹配所有的数字字符 \D匹配...

  • 2018-10-29 正则表达式

    Python学习记录 1.正则-> WHY, WHAT, HOWWHY:从大量文本中查找规则字符串,比字符串各种查...

  • 正则表达式学习 - 捕获 - 分组捕获

    1 实现正则捕获的方法 正则RegExp.prototype方法exec: 一个在字符串中执行查找匹配的RegE...

  • 正则表达式

    正则表达式的语法: 搭配正则表达式的一些方法 search() 用于查找某特定字符串,如果查找到该字符串,则返回...

  • 正则表达式

    正则表达式主要用于字符串的查找、匹配、分割 match(正则表达式字符串,需要匹配的字符串) 1.不带任何正则符号...

  • java基础第十五天

    1.正则表达式:字符串的规则定义,实际开发中,经常需要对字符串数据进行一些复杂的匹配,查找,替换等操作。通过“正则...

  • 正则表达式

    1. 正则表达式:规定字符串中字符出现规律的规则。 何时使用:查找 验证 替换 切割 模糊查找,验证字符...

  • NSArray是否包含某个字符串对象,并查找出索引值

    方法containsObject:和indexOfObject: iOS判断数组是否包含某个元素 iOS数组中查找字符串

网友评论

      本文标题:iOS 正则查找字符串中的数字

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