Seite 1 von 1

[gelöst] QRegExp Hilfe

Verfasst: 3. März 2009 16:36
von daRonny
Ich hab ein Problem. Ich möchte mit Hilfe der QRegExp aus dem QString:
"Test1"=Test2;" zwei Werte herauslesen.

In einer Var "Test1" und in einer zweiten VAR "Test2" schreiben.
Ich bekomme irgendwie nicht die richtige Expression.
Die Line die aus der Datei gelesen wird, soll dann mit der Expression matchen.

Gruß,
Ronny

QRegExp Hilfe

Verfasst: 3. März 2009 22:06
von nora

Code: Alles auswählen

/*
Also, unter der Annahme daß das, was da steht "literal" gemeint ist, d.h. die
exakte Zeichenfolge mit allen Sonderzeichen, würde ich das aus "RegExp"-Sicht
so lesen:

   Ein Zeilenanfang, gefolgt von einem Gänsefüsschen, gefolgt von
   einer beliebigen Anzahl von Buchstaben und Ziffern, gefolgt von einem
   Gänsefüsschen, gefolgt von einem Gleichheitszeichen, gefolgt von einer
   beliebigen Anzahl von Buchstaben und Ziffern, gefolgt von einem Semikolon,
   gefolgt von einem Gänsefüsschen, gefolgt von einem Zeilenende.

Wenn ich jetzt weiterhin annehme, daß Dich dabei nur jeweils die beiden
Buchstaben- und Ziffernfolgen interessieren, dann würde ich das als
regulären Ausdruck so schreiben:
*/

QString eingabezeile = ""; // Deine Eingabezeile
QRegExp rx ("^\"(\\w+)\"=(\\w+);\"$");
if (rx.indexIn (eingabezeile) != -1)
   {
   QString erste  = rx.cap (1); // 1. Buchstaben- und Ziffernfolge
   QString zweite = rx.cap (2); // 2. Buchstaben- und Ziffernfolge
   }
   
/*
Ich habe hierbei willkürlich festgelegt,
   - daß keine der beiden Buchstaben- und Ziffernfolgen leer sein darf.
   - das die gesamte Zeichenfolge nicht mittendrin, sondern für sich
     in einer Zeile vorkommt.
*/

Verfasst: 4. März 2009 12:33
von daRonny
Wow , dank deinem Beispiel bin ich vorran gekommen. Super ich danke für die schnelle Hilfe. Hat alles funktioniert.