QRegExp Problem

Alles rund um die Programmierung mit Qt
Antworten
aken0
Beiträge: 14
Registriert: 26. Oktober 2013 14:19

QRegExp Problem

Beitrag 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 ?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: QRegExp Problem

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten