美文网首页
正则匹配 IOS 仿微博,#话题#,@人,[表情] 网址

正则匹配 IOS 仿微博,#话题#,@人,[表情] 网址

作者: Peanut_S1 | 来源:发表于2020-03-05 22:52 被阅读0次

    /**
    *获取需要处理的子字符串和子串的range
    */
    -(NSArray<NSTextCheckingResult *> *)getBBSLetterSubStrRangeArrWithStr:(NSString *)str{
    //[...]表情
    //@"\[[a-zA-Z\u4e00-\u9fa5]+\]"
    NSString *emopattern=@"\[[\u4e00-\u9fa5\w]+\]" ;
    //#...#话题
    //@"#[0-9a-zA-Z\u4e00-\u9fa5]+#"
    // @"#[\u4e00-\u9fa5\w\s]+#";
    NSString *toppattern = @"#[^#]+#";
    //@...@
    //@"@[0-9a-zA-Z\U4e00-\u9fa5]+"
    NSString atpattern = @"@[\u4e00-\u9fa5\w]+";
    //url
    //@"http://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]
    [-a-zA-Z0-9+&@#/%=~_|]"
    NSString *urlpattern = @"\b(([\w-]+://?|www[.])[\s()<>]+(?:\([\w\d]+\)|([[:punct:]\s]|/)))";
    NSString *pattern = [NSString stringWithFormat:@"%@|%@|%@|%@",emopattern,toppattern,atpattern,urlpattern];
    NSRegularExpression *regular = [[NSRegularExpression alloc] initWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
    NSArray *results = [regular matchesInString:str options:0 range:NSMakeRange(0, str.length)];

    return results;
    

    }

    相关文章

      网友评论

          本文标题:正则匹配 IOS 仿微博,#话题#,@人,[表情] 网址

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