多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > iOS之― NSRegularExpression正則分割字符串

iOS之― NSRegularExpression正則分割字符串

來源:程序員人生   發布時間:2014-12-18 08:14:59 閱讀次數:3350次

社交化越來為社會所接受,在做社會化產品時,在回復或轉發時會@他人 展現出來,點擊@user 跳轉到該用戶的介紹頁面,這里首先要制定恰當的標簽,比如:<at href="jecky://profile/239">iJecky</at>,然后客戶端拿到文本時,要用到NSRegularExpression分割string,下面以富文本OHAttributedLabel來演示:

說明:本文中用到的contentLabel為OHAttributedLabel類型

示例:

NSString  *atstring = @"測試啊測試啊 <at href="jecky://profile/239">iJecky</at> 測試啊測試啊";


首先分割:

    NSMutableString *resultStr = [NSMutableString stringWithCapacity:0];

    NSString *pattern = @"<at href="(.*?)">(.*?)</at>";

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];

    NSArray *matches = [regex matchesInString:atstring options:0 range:NSMakeRange(0, atstring.length)];

    NSUInteger lastIdx = 0;

    for (NSTextCheckingResult* match in matches)

    {

        NSRange range = match.range;

        if (range.location > lastIdx)

        {

            NSString  *temp = [atstring substringWithRange:NSMakeRange(lastIdx, range.location - lastIdx)];

            [resultStr appendString:temp];

        }

        NSString *link = [atstring substringWithRange:[match rangeAtIndex:1]];

        NSString *text = [atstring substringWithRange:[match rangeAtIndex:2]];

        NSString *atName = [NSString stringWithFormat:@"@%@",text];

        [resultStr appendString:atName];

        [markDic setObject:link forKey:atName];

        lastIdx = range.location + range.length;

    }

    

    if (lastIdx < atstring.length)

    {

        NSString  *temp = [atstring substringFromIndex:lastIdx];

        [resultStr appendString:temp];

    }

    

    self.contentLabel.text = resultStr;


然后展現到contentLabel上

    NSRegularExpression* userRegex = [NSRegularExpression regularExpressionWithPattern:@"B@w+" options:0 error:nil];

    NSMutableAttributedString* mas = [self.contentLabel.attributedText mutableCopy];

    

    [userRegex enumerateMatchesInString:self.contentLabel.text options:0

                                  range:NSMakeRange(0,self.contentLabel.text.length)

                             usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){

                                 NSString  *auser = [self.contentLabel.text substringWithRange:match.range];       

                                 NSString  *atlink = [markDic objectForKey:auser];

                                 if (atlink) {

                                     [mas setLink:[NSURL URLWithString:[markDic objectForKey:auser]] range:match.range]; // add it

                                 }

                             }];

    

    OHParagraphStyle* para = [OHParagraphStyle defaultParagraphStyle];

    para.firstLineHeadIndent = 0;

    para.headIndent = 5;

    para.tailIndent = -5;

    para.textAlignment = kCTTextAlignmentLeft;

    [mas setParagraphStyle:para];

    [OHASBasicMarkupParser processMarkupInAttributedString:mas];


    self.contentLabel.attributedText = mas;





生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: jizz日本在线播放 | 欧美zzzz| 女人18毛片a | 伊人久久大香线蕉免费视频 | jizzjlzz大学生| 亚洲欧洲综合 | 在线视频午夜 | 亚洲性夜夜时 | 福利国产片 | 视频在线免费看 | 中文字幕二区 | 欧美一区二区三区不卡 | 成人国产一区二区三区精品 | 亚洲偷怕 | 高清中文字幕免费观在线 | www.日本一区二区 | 免费v片在线看 | 国产精品综合一区二区三区 | 中文在线1区二区六区 | 亚洲国产欧美日韩精品小说 | 狠狠色伊人亚洲综合第8页 狠狠色综合网 | av中文字幕网免费观看 | 欧美性大战久久久久久久 | 91在线精品亚洲一区二区 | 精品在线第一页 | 波多野结衣在线视频观看 | 91亚洲欧美综合高清在线 | 欧美性美 | 午夜视频在线免费播放 | 午夜dj影视大全视频 | 久久中文字幕不卡一二区 | 亚洲国产情侣一区二区三区 | 欧美另类bbbbxxxx | 性色aⅴ闺蜜一区二区三区 性色aⅴ在线观看swag | 欧美一区二区另类有声小说 | 日韩永久在线观看免费视频 | 亚洲精品日韩中文字幕久久久 | 欧美一级毛片日本 | 亚洲视频中文字幕在线观看 | 亚洲综合激情另类专区 | 川上优最新中文字幕不卡 |