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

Posted 熹微_念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 类似微博,#话题#,@人,[表情] 网址 正则匹配相关的知识,希望对你有一定的参考价值。

/**
 *获取需要处理的子字符串和子串的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 =  @"#[^#]+#";
    //@[email protected]
    //@"@[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 类似微博,#话题#,@人,[表情] 网址 正则匹配的主要内容,如果未能解决你的问题,请参考以下文章

新浪微博客户端(47)-在TextView中插入表情

IOS开发之显示微博表情

Android仿微博实现添加话题的输入框

7-46 新浪微博热门话题 (30分)

热门话题“看第一学历招人公平吗?”数据告诉你,网友们都是如何想的

微博短网址生成算法原理