Регулярное выражение для выделения слов в цитатах INT QT5
-
21-12-2019 - |
Вопрос
Я использую класс Qhighlighter и использовал Regexp для выделения слов в кавычках:
void Highlighter::highlightBlock(const QString &text)
{
QRegExp expr("\"(.*?)\"");
int index = expr.indexIn(text);
while(index >=0)
{
int length = expr.matchedLength();
setFormat(index, length, Qt::red);
index = expr.indexIn(text, index+length);
}
}
.
Это не работает.Работаю это:
"\".*\""
.
Но это подчеркивает ненужным.Какое регулярное выражение правильно?
Решение
Просто higlight все между цитатами
QRegExp("\"([^\"]*)\"");
.
Выделите отдельные слова (запускаются в цикле со смещением, чтобы соответствовать словам)
QRegExp("\"(\\w)*\"");
. Другие советы
Как сопоставить слова в кавычках:
('|")[^\1]*?\1
.
Пример:
Не связан с StackOverflow