【发布时间】:2011-05-12 17:02:04
【问题描述】:
我做了一个语法高亮,我需要用这个词在标签中替换所有出现的特殊词。例如我有:
@"int main{ bla bla; float=0; bla bla;"
想要得到
@"int main{ bla bla; float=0;"等等
(必须将 \ 放在 FONT 之前)。 我有 specialwords 数组,在 html 中有这个文本(浮动它,我从 UITextView contentAsHTMLString 得到它)并且只想放置颜色标签。怎么做?
试过 stringByReplacingOccurrencesOfString 但是
printf()
不是我想要的。
尝试 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 字附近的任何内容)。
【问题讨论】:
-
如果你真的想要一个任意代码示例的语法高亮器(你只涵盖 C 顺便说一句吗?)简单的替换和正则表达式都不会让你到达那里 - 想想例如
s=" int ";,转义换行符,typedefs,...我要么搜索现有的荧光笔,要么使用现有的解析器(例如 clang 的 API)。
标签: iphone objective-c ios