方法一
/**
获取匹配所有字段
@param String 原字符串
@param searchString 要匹配的字符串
@return range数组(使用 NSRangeFromString(<#NSString * _Nonnull aString#>)转换成NSRange)
*/
+ (NSArray *)getRangeWithString:(NSString *)String searchString:(NSString *)searchString;
+ (NSArray *)getRangeWithString:(NSString *)String searchString:(NSString *)searchString{
NSArray * stringArr = [String componentsSeparatedByString:searchString];
if (stringArr.count == 0) {
return @[];
}
NSMutableArray * rangeArr = [[NSMutableArray alloc]init];
NSInteger index = 0;
for (NSString * string in stringArr) {
NSRange range = NSMakeRange(index, searchString.length);
index = index + string.length + searchString.length;
[rangeArr addObject:NSStringFromRange(range)];
}
return rangeArr;
}
方法二
NSMutableAttributedString *newString = [[NSMutableAttributedString alloc] initWithString:@"要匹配的字符"];
NSRegularExpression *regex = [[NSRegularExpression alloc]initWithPattern:@"匹配的字符" options:NSRegularExpressionCaseInsensitive error:nil];
[regex enumerateMatchesInString:self.model.showtitle options:NSMatchingReportProgress range:NSMakeRange(0, newString.length) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
[newString addAttribute:(NSString*)NSForegroundColorAttributeName
value:[UIColor redColor]
range:result.range];
}];
self.aTitle.attributedText = newString;
网友评论