Взято из примера выделения синтаксиса Qt:
//single line comment rule
singleLineCommentFormat.setForeground(Qt::darkGray);
rule.pattern = QRegExp("//[^\n]*");
rule.format = singleLineCommentFormat;
highlightingRules.append(rule);
//string rule
quotationFormat.setForeground(Qt::darkGreen);
rule.pattern = QRegExp("\".*\"");
rule.pattern.setMinimal(true);
rule.format = quotationFormat;
highlightingRules.append(rule);
Проблема в том, что у вас есть что-то вроде этого:
"inside is darkGreen//"outside is darkGray
Как видите, результат такой: внутри кавычки будут серыми, включая двойной / . Но символы за пределами "" становятся темно-серыми, которые должны быть цветом шрифта по умолчанию (обычно черным). Как настроить RegExp для однострочного комментария, чтобы он знал, что зеленый «//» исключен из правила выделения darkGray?
Я попытался добавить это для правила комментирования одной строки:
rule.pattern.setMinimal(true);
Все равно не сработает. Я также пробовал:
rule.pattern = QRegExp("//[^\n]*\"*");