我正在編寫一個程序,使文本以/*
開頭,並以*/
結尾爲不同的顏色(C語句的語法高亮顯示)。當我嘗試這個OS X在正則表達式中使用文字星號
@"/\*.*\*/";
我得到unknown escape sequence
。所以我想,要得到一個字面星號,我不得不使用這個
@"/[*].*[*]/";
,我沒有錯誤,但是當我使用此代碼
commentPattern = @"/[*].*[*]/";
reg = [NSRegularExpression regularExpressionWithPattern:commentPattern options:kNilOptions error:nil];
results = [reg matchesInString:self.string options:kNilOptions range:NSMakeRange(0, [self.string length])];
for (NSTextCheckingResult *result in results)
{
[self setTextColor:[NSColor colorWithCalibratedRed:0.0 green:0.7 blue:0.0 alpha:1.0] range:result.range];
}
評論的文本顏色沒有變化,但我沒有看到我的正則表達式有什麼問題。有人可以告訴我爲什麼這不會工作?我不認爲這是我得到結果或改變顏色的方式的問題,因爲我對其他正則表達式使用相同的方法。
您是否已驗證'self.string'實際上是否包含一些形式爲'/ * ... * /'的文本? – rmaddy
@rmaddy感謝您指出這一點,我正在測試這個錯誤的文件。 –