图中方框里的代码能简写吗?感觉重复了。

图片说明

 QTextCharFormat myFormat;
    myFormat.setFontWeight(QFont::Bold);
    myFormat.setForeground(Qt::green);
    QString pattern="\\bchar\\b";
    QRegExp expression(pattern);
    int index=text.indexOf(expression);
    while(index>=0)
    {
        int length=expression.matchedLength();
        setFormat(index,length,myFormat);
        index=text.indexOf(expression,index+length);
    }
    QString patt="\\bdouble\\b";
    QRegExp express(patt);
    int inde=text.indexOf(express);
    while(inde>=0)
    {
        int lengt=express.matchedLength();
        setFormat(inde,lengt,myFormat);
        inde=text.indexOf(express,inde+lengt);
    }

写入 for 循环两次,第一次 "\bchar\b";第二次 "\bdouble\b";

写入for循环可以。但是时间复杂度增大了。空间复杂度却没有大的改善,这样子并不是很合理。

定义宏(c语言是 #define xxx)然后把你的那几行代码放到那一样后面就行了。程序内用 xxx 表示这几行代码。