/** *获取需要处理的子字符串和子串的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; }