Seite 1 von 1

QRegExp Problem

Verfasst: 9. Dezember 2013 18:34
von aken0
Guten Tag,
ich bin gerade dabei einen Editor zu programmieren, dieser als "besonderes" Feature syntax highlighting unterstüzt.
Bisher hat auch alles Prima funktioniert, zum Beispiel Schlüsselwörter wie (void, class, int, return if, else usw...)
werden farblich formatiert. Auch Funktionien und Sonderzeichen wie (; : ::) werden farblich hervorgehoben.
Nun möchte ich aber auch Klammern((,),{,}...) farblich formatieren, jedoch klappt dies nicht. Hier mal ein
kleiner Ausschnitt meines Codes, mitdiesem ich die Sonderzeichen vormatiere:

Code: Alles auswählen

     QTextCharFormat subkeys;
     QVector<HighlightingRule> highlightingRules;

     subkeys.setForeground(Qt::darkBlue);
     QStringList subkeyPatterns;
     subkeyPatterns << "(" << ")" << ";" << ":" << "\\b->\\b" << "{" << "}" << "+"
                    << "-" << "!=" << "=" << "*" << "-" << "<" << ">" << "&";
     foreach(const QString &pattern, subkeyPatterns)
     {
         rule.pattern = QRegExp(pattern);
         rule.format = subkeys;
         highlightingRules.append(rule);
     }
Hier mal ein Screenshot, wie das bisher aussieht:
Bild

Wie man auf dem Screenshot erkennen kann, sind die Klammern sowie Punkte, werden nicht
farblich makiert.

Kennt jemand eine Lösung dazu ?

Re: QRegExp Problem

Verfasst: 9. Dezember 2013 19:56
von Christian81
Diese Zeichen sind nunmal besondere Zeichen in einem regulären Ausdruck - siehe auch Doku: http://qt-project.org/doc/qt-4.8/qregexp.html#details
Also korrekt quoten und sich erst einmal mit regulären Ausdrücken auseinander setzen