[gelöst] QRegExp Hilfe

Verschiedenes zu Qt
Antworten
daRonny
Beiträge: 23
Registriert: 21. November 2007 23:09
Kontaktdaten:

[gelöst] QRegExp Hilfe

Beitrag 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
Zuletzt geändert von daRonny am 4. März 2009 12:36, insgesamt 3-mal geändert.
nora
Beiträge: 14
Registriert: 1. Juni 2005 16:54

QRegExp Hilfe

Beitrag 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.
*/
daRonny
Beiträge: 23
Registriert: 21. November 2007 23:09
Kontaktdaten:

Beitrag von daRonny »

Wow , dank deinem Beispiel bin ich vorran gekommen. Super ich danke für die schnelle Hilfe. Hat alles funktioniert.
Antworten