NSRegularExpression在字符后的文本颜色后更改

时间:2015-05-29 17:01:05

标签: ios regex nsregularexpression

我正在尝试更改角色的颜色以及随附的任何文字,我使用NSRegularExpression来获取角色,但我不知道如何更改后续角色,例如这里是我的文字:

● Title......
some description xxxxxx x x x x x  

所以在这种情况下,我需要更改此字符的颜色和跟随字符串

这是代码:

 NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"●"
                                   options:kNilOptions error:nil];

[regex2 enumerateMatchesInString:PureText options:kNilOptions range:range usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
    NSRange subStringRange = [result rangeAtIndex:0];
    [stringText addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:subStringRange];
}];

_textView.attributedText = stringText;

此代码仅查找和更改字符的颜色。

2 个答案:

答案 0 :(得分:1)

使用正则表达式●.*匹配换行符前点后的所有字符:

NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"●.*"
                                   options:kNilOptions error:nil];

[regex2 enumerateMatchesInString:PureText options:kNilOptions range:range usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
    NSRange subStringRange = [result rangeAtIndex:0];
    [stringText addAttribute:NSForegroundColorAttributeName value:[UIColor orangeColor] range:subStringRange];
}];

_textView.attributedText = stringText;

答案 1 :(得分:0)

您的正则表达式仅查找点符号。像●.*之类的东西怎么样?我不确定NSRegularExpression如何处理换行符,所以你可能也需要代表它们。