用于在引号int qt5中突出显示单词的正则表达式

时间:2014-02-26 21:05:00

标签: regex qt syntax-highlighting qt5

我使用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);
    }

}

它不起作用。这样做:

"\".*\""

但它突出了不必要的。什么正则表达式是正确的?

2 个答案:

答案 0 :(得分:2)

高亮显示引号之间的所有内容

QRegExp("\"([^\"]*)\"");

突出显示单个单词(在带有偏移的循环中运行以匹配单词)

QRegExp("\"(\\w)*\"");

答案 1 :(得分:0)

如何匹配引号中的单词:

('|")[^\1]*?\1

实施例

http://regex101.com/r/iF5aA1