Archiv verlassen und diese Seite im Standarddesign anzeigen : Regex
Hi,
ich sitze gerade hier an einer Programmierhausaufgabe und muss einen String nach Werten interpretieren. Nun habe ich folgende Zeile und will nur zum Beispiel den Pfad des Bildes herausfiltern.
Kundennummer=pbc277IDI Kontoinhaber=Thomas Picture=pic/SSGP0015.JPG; Typ=GiroKonto Nummer=102510 Betrag=2.0,
Ich bekomme aber keine Regex hin, welche mir auf nur den Inhalt zwischen "Picture=" und dem Semicolon herausfiltert.
Probiers mal damit:
http://weitz.de/regex-coach/
Baalzamon
2011-01-08, 16:54:26
Was geht denn an
Picture=(.*);
nicht?
Mit einem x-beliebigen Applet (http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester.html) getestet und das funktioniert wunderbar... :uponder:
hadez16
2011-01-10, 12:02:53
Picture=([^;])*
sollte es tun.
EDIT: ach ne.
Monger
2011-01-16, 09:56:44
Was geht denn an
Picture=(.*);
nicht?
Punkt (d.h. beliebiges Zeichen) konsumieren ist immer gefährlich. Kann man machen, hat aber seine Tücken. In diesem Fall: dieser reguläre Ausdruck würde ALLES bis zum letzten Strichpunkt konsumieren, also im folgenden Text alles fettgedruckte:
Kundennummer=pbc277IDI Kontoinhaber=Thomas Picture=pic/SSGP0015.JPG; Typ=GiroKonto Nummer=102510 Betrag=2.0;
Besser wirds, wenn man die kleinste Menge durch nen Lazy Operator sucht:
Picture=(.*?);
Noch sicherer wird es, wenn man gezielt nach Leerzeichen und Strichpunkten als Separatoren sucht, und die jeweiligen Wertepaare dann am "=" auftrennt. Manchmal macht man sich selbst das Leben unnötig schwer, wenn man versucht alle Anforderungen zwanghaft in einen einzigen Regex Ausdruck zu quetschen.
Ich denke mal, die Hausaufgabe wird schon abgegeben sein ;)
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.