Mit QRegExp Ausdruck Stirng durchsuchen

Verschiedenes zu Qt
Antworten
marcel170983
Beiträge: 1
Registriert: 12. August 2008 11:10
Wohnort: Mainz

Mit QRegExp Ausdruck Stirng durchsuchen

Beitrag von marcel170983 »

Hallo freunde der leichten Unterhaltung :)

Bin neu in der Welt der programmierung.
Habe folgendes Problem, ich bekomme, leider nicht am
Stück von einem Messgerät Strings der Form:
+3.30818054E+02OHM,+62138.275SECS,+1146193RDNG#

Von diesem String benötige ich "+3.30818054E+02OHM".

Da mit String splitting die sache nicht so doll funkte habe ich gedacht na dann schauen wir mal wie es mit QRegExp klappt.
Ich lese also solange ein bis der Gesamt String einen String in der oben
angegebenen Form beinhaltet. Dies wollte ich mit folgendem
Reg.-Ausdruck durhführen:

QRegExp rx("[+]\\d\\.\\d\\d\\d\\d\\d\\d\\d\\d[E][+]\\d\\d\\D\\D\\D");

aber irgendwie will der nicht so wie ich will.
Ich wollte dann die Position des Strings durch:

int pos = 0;
QStringList qstrlistnumber;
while ((pos = rx.indexIn(gesamtstring, pos)) != -1)
{
int pos += rx.matchedLength();
qstrlistnumber.append(QString::number(pos));
}

Aber irgendwie will das alles nicht klappen.
Könntet ihr mir helfen.
Danke!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wenn man keine RegEx kann sollte man vielleicht anders machen:

Code: Alles auswählen

QRegExp rx("^\\+\\d+.\\d+E[+-]\\d+");
oder

Code: Alles auswählen

QString result=str.left(str.indexOf("OHM")+3);
oder

Code: Alles auswählen

QString result=str.section("OHM", 0, 0, QString::SectionIncludeTrailingSep);
Antworten