Seite 1 von 1

Bearbeitung von Strings, Reguläre Ausdrücke

Verfasst: 5. Oktober 2006 10:49
von ClassicSubzero
Hallo!

Ich habe folgendes Problem:
möchte aus einer *.uco Datei die Zeilen auslesen und weiter bearbeiten, wo folgender Text steht:
Install = "Acrobat Reader" : \Acrobat\reader.exe
Install = "Anderes Programm" : \Progy\irgendwo.exe

Eine Regular Expression dazu zusammengebaut, aber irgendwas ist da falsch, weil die Zeilen nicht gefunden werden.
Bitte um Hilfe

Der Code dazu:

Code: Alles auswählen

QFile file ("install.uco");
	if (!file.open(QIODevice::ReadOnly))
	{
		qDebug () << "Cannot open file for reading" << endl;
		//return;
	}
	else
	{
		qDebug () << "File opened successfully!";

		QTextStream textStrom(&file);
		QString dateiInhalt = textStrom.readAll();
		
		QRegExp rx ("(?:install)(?:\\s+|\\t+)(?:=)(?:\\s+ | \\t+)([^\\r]+)$");
		QStringList strings;
		int pos = 0;

		while ((pos = rx.indexIn (dateiInhalt, pos) != -1))
		{
			strings << rx.cap(1);
			pos += rx.matchedLength();
		}
		
		QStringListIterator i(strings);
		while (i.hasNext())
		{
			qDebug () << i.next().toLocal8Bit().constData() << endl;
		}
	}


Verfasst: 5. Oktober 2006 15:02
von ClassicSubzero
Problem gelöst : Das $-Zeichen am Ende muss weg, dann funktioniert die expression.
:)

Richtig also:

Code: Alles auswählen

		QRegExp("(?:[Ii]nstall)(?:\\s+|\\t+)(?:=)(?:\\s+|\\t+)([^\\r]+|[^\\n])");