美文网首页iOS 技术分享
iOS - 获取字符中所有括号内字符,并特殊处理

iOS - 获取字符中所有括号内字符,并特殊处理

作者: Joh蜗牛 | 来源:发表于2019-08-29 09:35 被阅读0次
1.遍历字符串,获取所有括号中字符串,返回数组:
传入:NSString *str = @"【管理员】请您审核【山西建邦集团有限公司】的商品";
返回值:NSArray  *ary = @[【管理员】,【山西建邦集团有限公司】];
//找出字符串中用括号括住的字符串们
- (NSArray *)handleStringWithString:(NSString *)str{

    NSMutableArray *chooseAry = [@[] mutableCopy];

    NSMutableString * muStr = [NSMutableString stringWithString:str];

    while ([muStr containsString:@"【"]) {
        NSString *chooseStr = @"";

        NSRange range = [muStr rangeOfString:@"【"];
        NSRange range1 = [muStr rangeOfString:@"】"];


        if (range.location != NSNotFound) {
            NSInteger loc = range.location;
            NSInteger len = range1.location - range.location;

            chooseStr = [muStr substringWithRange:NSMakeRange(loc, len + 1)];
            [chooseAry addObject:chooseStr];

            [muStr deleteCharactersInRange:NSMakeRange(loc, len + 1)];
        }
    }


    return chooseAry;

}
2.将处理过的字符串赋值给Label:
self.contentLabel.attributedText = [self setTextColor:contentStr chooseAry:[self handleStringWithString:contentStr] color:kColorHex(0x333333) fontSize:15];


// 处理字符串
- (NSMutableAttributedString *)setTextColor:(NSString *)text chooseAry:(NSArray *)chooseAry color:(UIColor *)color fontSize:(CGFloat)fontSize{

    NSMutableAttributedString *contentStr = [[NSMutableAttributedString alloc]initWithString:text];
    for (NSString *str in chooseAry) {
        //找出特定字符在整个字符串中的位置
        NSRange redRange = NSMakeRange([[contentStr string] rangeOfString:str].location, [[contentStr string] rangeOfString:str].length);
        //修改特定字符的颜色
        [contentStr addAttribute:NSForegroundColorAttributeName value:color range:redRange];
        if (fontSize > 0) {
            //修改特定字符的字体大小
            [contentStr addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:fontSize] range:redRange];
        }
    }


    return contentStr;

}

相关文章

  • iOS - 获取字符中所有括号内字符,并特殊处理

    1.遍历字符串,获取所有括号中字符串,返回数组: 2.将处理过的字符串赋值给Label:

  • 正则-中括号[]

    1. 在中括号中出现的所有的字符都是代表本身意思的字符(没有特殊的含义) 2. 在中括号中并不识别两位数

  • 正则表达式

    通用字符组(匹配任意单个字符) 特殊字符 特殊字符之"^" 如上图: "^"这个字符在中括号”[]”中使用的话表示...

  • Linux 《高级 Bash 脚本编程指南》实验报告

    运行Bash脚本 特殊字符 美元符号$ 分号; 反引号` 问号? 小括号(()) 大括号({}) 中括号([]) ...

  • 正则()[]{}|?:用法

    圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理方括号是单个匹配 字符集/排除字符...

  • 判断字符串中是否含有特殊字符

    判断字符串中是否含有特殊字符 处理html特殊字符转义问题参考文章

  • jmeter,正则表达式

    [...]位于括号之内的任意字符正则表达式 1、具有特殊含义的字符: (和):界定期望获取字符串的匹配模式 .(字...

  • 总结

    最近做的 关于进入cell记住状态的问题和iOS中字符串的转译如过后台有特殊处理比如对特殊字符的处理。我们客户端就...

  • shell正则

    1.特殊符号在shell正则中的作用 ^ 匹配正则表达式的开头,或若果在括号中,表示不匹配扩括号内的字符 $ 匹配...

  • 每日算法题—反转每对括号间的子串

    题目描述 要求:按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果,且括号成对出现输入:s ...

网友评论

    本文标题:iOS - 获取字符中所有括号内字符,并特殊处理

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