Seite 1 von 1

Regular Expression neue Regel WICHTIG!!! Termin!!!

Verfasst: 14. Juni 2007 08:37
von Krug-Systems.de
Guten Morgen,

Code: Alles auswählen

QRegExp rx("^((?:(?!Fa\\.)[^()])*)(?:\\((.*)\\))?(Fa\\..*)?$");	
if (rx.indexIn(typ) != -1)
{
   typ	                = rx.cap(1);   // typ          = Bezeichnung
   language	= rx.cap(2);   // language  = Sprache 
   service		= rx.cap(3);   // service     = Firma
}
mit diesem Code Splite ich im Moment mein meinen String auf Bezeichnung, Sprache und Firma irgendwie tut das aber nicht richtig. bzw meine annahme der String logik war falsch.

String Varianten:
xxxxxxx Fa. aaaaaaaa (Sprache)
oder
xxxxxxx (Sprache) Fa. aaaaaaaa

Bitte kann mir jemand helfen ne neue Regel zu schreiben ....

MFG Danke ist Wichtig ......

Verfasst: 14. Juni 2007 09:16
von macman
Warum muss das in eine Expression? Mach mehrere daraus. Ist schnell erledigt und einfacher zu warten.

Verfasst: 14. Juni 2007 09:47
von Krug-Systems.de
wie sehen die dann aus ?
kenn mich an dieser ecke kaum aus, war froh das ich des eine mal so hin gebracht habe . :wink:

Verfasst: 14. Juni 2007 11:03
von macman
Z.B.

Code: Alles auswählen

#include <QDebug>
#include <QRegExp>
#include <QString>

int main(void)
{
	QString service, lang, typ;
	QString str1("xxxxxxx Fa. aaaaaaaa (dütsch) ");
	QString str2("xxxxxxx (engelisch) Fa. bbbbbb ");

	// für Firma
	QRegExp rx("Fa\\.\\s(.*)\\s");
	rx.setMinimal(true);
	if (rx.indexIn(str1) != -1)
		service      = rx.cap(1);

	if (rx.indexIn(str2) != -1)
		service      = rx.cap(1);

	// für Sprache
	rx.setPattern("\\((.*)\\)");
	if (rx.indexIn(str1) != -1)
		lang      = rx.cap(1);

	if (rx.indexIn(str2) != -1)
		lang      = rx.cap(1);

	return 0;
} 
An den Typ kommst Du wohl mit einem einfachen indexOf.

Re: Regular Expression neue Regel WICHTIG!!! Termin!!!

Verfasst: 14. Juni 2007 12:27
von gerome69
Sorry, bei einem solchen Subjekt mit Gebrülle wird dir wohl niemand wirklich helfen wollen. Höflichkeit ist eine Zier...

Gruß, Gérôme

Verfasst: 14. Juni 2007 13:04
von Zandru
ich hab grade schon nen Schreck bekommen, was für einen Termin ich verpasst habe. Warum brüllst du uns so an?

Verfasst: 14. Juni 2007 14:27
von Krug-Systems.de
sorry jungs, war nicht so gemeint,
wollte damit sagen ich hab morgen termin mit fertigstellung dieser software und häng noch an dieser abfrage.

Aber tut mir leid, wenn ihr euch geträngt gefühlt habt.
.... 8)