iOS將()中內容添加富文本

在項目中集成 regexkitlite 集成 網上有教程

- (NSMutableAttributedString *)extractBracketsContentSelectAttrs:(NSDictionary *)selectAttr noSelectAttrs:(NSDictionary *)noSelectAttr{//字典為富文本

NSString *str = [NSString stringWithString:self];?

NSString *regex = @"(?<=\\()(.+?)(?=\\))";//()正則

NSArray *matchStrArr = [self componentsMatchedByRegex:regex];//regexkitlite提取()中內容可能有多個()返回數組

str = [str stringByReplacingOccurrencesOfString:@"(" withString:@""];

str = [str stringByReplacingOccurrencesOfString:@")" withString:@""];

NSRange remainRange = NSMakeRange(0, str.length);

NSMutableArray *ranges = [[NSMutableArray alloc] initWithCapacity:matchStrArr.count];

for (NSString *indexStr in matchStrArr) {

NSRange firstRange =? [str rangeOfString:indexStr options:NSCaseInsensitiveSearch range:remainRange];

NSValue * rangeValue = [NSValue valueWithRange:firstRange];

[ranges addObject:rangeValue];

NSUInteger endLocation = firstRange.location + firstRange.length;

remainRange = NSMakeRange(endLocation, str.length - endLocation);

}

NSMutableAttributedString *mutableStr = [[NSMutableAttributedString alloc] initWithString:str];

[mutableStr addAttributes:noSelectAttr range:NSMakeRange(0, mutableStr.length)];

for (NSValue *value in ranges) {

[mutableStr addAttributes:selectAttr range:value.rangeValue];

}

return mutableStr;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容