Регулярное выражение для выделения слов в цитатах INT QT5

StackOverflow https://stackoverflow.com//questions/22053236

Вопрос

Я использую класс 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
.

Пример:

rel="nofollow"> http://regex101.com/r/if5aa1

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top