Взятые из Qt Syntax Highlighter Пример:Qt Syntax Highlighter Пример выделения правила для одной строки комментарии
//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
Как вы можете видеть, результат: внутри цитаты будут серыми, включая double /. Но символы вне "" становятся darkGray, который должен находиться в цветном шрифте по умолчанию (обычно, черный). Как настроить RegExp для однострочного комментария, чтобы он знал, что зеленый «//» освобожден от правила подсветки darkGray?
Я попытался добавить это для опалить линии комментария правила:
rule.pattern.setMinimal(true);
Все еще не будет работать. Я также попытался:
rule.pattern = QRegExp("//[^\n]*\"*");
Я также пробовал rule.pattern = QRegExp ("// ([^ \ n] *) | (?! \") "); –