我创建了一个语法高亮显示,我需要在标签中用这个单词替换所有出现的特殊单词。例如我有:
@“int main {bla bla; float = 0; bla bla;”
想要
@“< \ FONT COLOR = FF00FF> int< \ FONT> main {bla bla;< \ FONT COLOR = FF00FF> float< \ FONT> = 0;”等
(必须在FONT之前放置\)。 我有特殊字数组,在html中有这个文本(浮动它,我从UITextView contentAsHTMLString得到它)并且只想放置颜色标签。怎么样?
尝试了stringByReplacingOccurrencesOfString但是
pr< \ FONT COLOR = FF00FF> int< \ FONT> f()
不是我想要的。
尝试使用regexkitlite。 [editString replaceOccurrencesOfRegex:[NSString stringWithFormat:@“[^ a-zA-z]%@ [^ a-zA-z]”,specialString] withString:[NSString stringWithFormat:@“$ 0%@ $ 1”,specialString]范围: NSMakeRange(0,[editString length])];
创建异常(索引超出界限... O_O wtf?),如果我从“withString”中删除$ 0和$ 1,它将不会替换“int”而是替换“int”(也就是在int字附近)。< / p>
答案 0 :(得分:0)
首先将颜色应用于“int”事件:
NSString *initialString = @"int main{ bla bla; float=0; bla bla;";
NSString *stringWithColorInt = [initialString stringByReplacingOccurrencesOfString:@"int" withString:@"<FONT COLOR=FF00FF>int<\FONT>" options:NSLiteralSearch range:NSRange(0,[initialString length])];
然后到“浮动”事件:
NSString *stringWithColorFloat = [stringWithColorInt stringByReplacingOccurrencesOfString:@"float" withString:@"<FONT COLOR=FF00FF>float<\FONT>" options:NSLiteralSearch range:NSRange(0,[stringWithColorInt length])];