注释语法突出显示的正则表达式是什么?

时间:2011-11-06 21:33:07

标签: ios regex syntax-highlighting nsregularexpression

说我有这样的文字:

word1 word2 " word3 //" word4

我需要写一个正则表达式来评论。我的解决方案现在为((\/\/).*(\n)),结果为enter image description here

正则表达式“”下一个((\").*(\"))

1 个答案:

答案 0 :(得分:0)

这是我的解决方案。我知道它会更好。我知道返回参考,但我没有相关经验。

NSRegularExpression *exp = [NSRegularExpression regularExpressionWithPattern:@"((@\"|\").*?(\"))"
                                          options:NSRegularExpressionDotMatchesLineSeparators 
                                            error:nil];
NSArray *textArr = [exp matchesInString:string options:0 range:NSMakeRange(0, [string length])];

for (NSTextCheckingResult *result in textArr) {
    // set color for range
}


// Comments
exp = [NSRegularExpression regularExpressionWithPattern:@"(//[^\"\n]*)"
                                                options:0
                                                error:nil];

NSArray * arrayComments = [exp matchesInString:string options:0 range:NSMakeRange(0, [string length])];

for (NSTextCheckingResult *resultComment in arrayComments) {

    BOOL inside = NO;
    for (NSTextCheckingResult *resultText in textArr) {
        NSInteger from = resultText.range.location;
        NSInteger to = resultText.range.location+resultText.range.length;
        NSInteger now = resultComment.range.location;
        if (from < now && now < to) {
            inside = YES;
            break;
        }
    }
    if (!inside) {
        // set color for range
    }
}

answer on my blog