Seite 1 von 1

[Gelöst] QRegExp Problem

Verfasst: 7. Mai 2008 17:29
von loki
Hallo!

Ich habe schon im Forum gesucht, konnte aber eine Lösung zu meinem speziellen Problem nicht finden.

Folgendes: es gibt einen String, der immer eine ähnliche Folge von Zeichen enthält und die Expression hierfür sieht so aus:

\\(\\d+\\)

d.h. es kommt eine "(" gefolgt von einer Zahl (positiv) und gefolgt von einer ")"

Diese Zeichenfolge gilt es aus einem Log String zu filtern und auszulesen.
Ich verwende hierfür zum Testen das Bspl. von diesem Beitrag

http://qtforum.de/forum/viewtopic.php?t ... expression

Bei mir gibt es das Problem, daß wenn sich die gesuchte Zeichenkette am Anfang des Strings befindet, dann wird er nicht gematched und das ist seltsam, weil sonst wird er immer gefunden.

Ausgabe in QDebug

Vielleicht hat jemand Rat und dafür wäre ich wirklich sehr dankbar, weil ich weiß leider nicht weiter.


Vielen Dank und schöne Grüße!

Verfasst: 7. Mai 2008 17:37
von upsala
Es gibt keinen Grund warum das nicht funktionieren sollte. Es gibt aber auch keinen Grund warum man Text als Grafik anzeigen sollte...

Verfasst: 7. Mai 2008 17:45
von loki
Hi,
danke für deine Antwort!

Also, ich sehe ja auch keinen Grund, warum das nicht Funktionieren sollte, aber so wie es aussieht tut es das leider nicht.

Das mit der Grafik ist so eine Sache, daß es beim Debug Fenster vom MSVS nicht möglich ist den Text zu kopieren und ich wollte ihn nicht abtippen... reine Faulheit also ;-)

Verfasst: 7. Mai 2008 18:06
von SchranZViruS
Wenn die Zahl höchstens einmal pro Zeile vorkommt, müsste das folgende auf jeden fall funktionieren:

.*//(//d+//).*

Verfasst: 7. Mai 2008 18:08
von upsala
Da es im Qt-RegEx-Tester funktioniert, könnte es ja auch an deinem Code liegen...

Verfasst: 7. Mai 2008 18:23
von Christian81
loki hat geschrieben: Das mit der Grafik ist so eine Sache, daß es beim Debug Fenster vom MSVS nicht möglich ist den Text zu kopieren
Falsch

Verfasst: 7. Mai 2008 18:51
von loki
Vielen Dank für Eure Hints!

Durch die Bestätigung, daß es richtig sein muß und anscheinend an meinem Code liegt, bin ich dahinter gekommen.

Es lag an der falschen Anwendung von "indexIn()".


Einen wunderschönen Feierabend wünsche ich noch!