替换NSMutableString中的单词

时间:2011-05-12 17:02:05

标签: iphone objective-c ios

我创建了一个语法高亮显示,我需要在标签中用这个单词替换所有出现的特殊单词。例如我有:

  

@“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>

1 个答案:

答案 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])];