日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

iOS之― NSRegularExpression正則分割字符串

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

社交化越來為社會所接受,在做社會化產品時,在回復或轉發時會@他人 展現出來,點擊@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;





生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久九九精品久久 | 亚洲专区欧美专区 | 国产日韩精品一区二区 | 黄色片一级黄色片 | 精品久久中文字幕 | 九九在线视频 | 99免费精品 | 色呦呦视频 | 懂色av一区二区三区蜜臀 | 国产精品一区二区三区四区在线观看 | 欧美日韩国产综合在线 | 成人午夜精品一区二区三区 | 国产一区二区三区免费观看在线 | 国产黄色电影 | 国产在线不卡视频 | 欧美在线观看第一页 | 黄a网站 | 91先生在线 | 色姑娘综合网 | 精品国产日韩欧美 | 嫩草在线视频 | 国产中文在线播放 | 麻豆av一区 | 美女黄视频免费 | 日韩一级大片 | 不卡影院| 欧美精品国产 | 国产精品视频免费观看 | 国产成人久久精品 | 成人在线网 | 日韩中文视频 | 国产成人在线一区 | 国产在线精品二区 | 久久久久99精品国产片 | 黄色av免费在线播放 | 中文字幕亚洲成人 | 亚洲欧洲在线视频 | 99国产精品久久久久久久成人热 | 国产中文在线视频 | 中国一级黄 | 国产精品av一区二区 |