HILFE! Regexp!
Peter Mairhofer
- php
Arr, jetzt verbringe ich schon Stunden mit diesem Ausdruck komme aber einfach nicht weiter!!!
Ich habe mp3 Lieder in der Form:
#EXTINF:234,Interpret - Titel
wobei es auch so sein kann:
#EXTINF:324, - Titel
oder
#EXTINF:432,Titel
order
#EXTINF:345,Interpret - Titel1 - Titel2
(Anmerkung: Zum schluss soll entweder interpret und titel1 oder titel1 und titel2 zusammengehören; nicht so wichtig)
Jetzt möchte ich nur Länge, Titel und Interpret da rausextrahieren (mit regexp), um sie in eine SQL Tabelle schreiben zu können, in der Form:
<Laenge>, <Interpret>, <Titel>
Dabei sollen wenns irgendwie geht auch noch alle "'" escaped werden, damit es keinen SQL Error gibt...
Doch ich komme einfach nicht klar. Mit dem hier schaffe ich die Möglichkeiten 1, 2 und 4, aber die Möglichkeit drei nimmt er da einfach nicht.
s/#EXTINF:([0-9]{0,5}),(.+?) - (.+?)/$1, '$2', '$3'/;
das sollte mir die ausgabe geben:
<Zeit>, '<Interpret>' - '<Titel>'
Tut es wie gesagt auch, aber wie gesagt, sobald in einem String kein "-" vorkommt, streikt er offensichtlich. Kann mir da wer helfen?? Mit welcher regexp schaffe ich mein Vorhaben?
Thx,
Peter
Hallo Peter,
s/#EXTINF:([0-9]{0,5}),(.+?) - (.+?)/$1, '$2', '$3'/;
das sollte mir die ausgabe geben:
<Zeit>, '<Interpret>' - '<Titel>'
Tut es wie gesagt auch, aber wie gesagt, sobald in einem String kein "-" vorkommt, streikt er offensichtlich. Kann mir da wer helfen?? Mit welcher regexp schaffe ich mein Vorhaben?
Versuch mal das '-' und die beiden ' ' mit einem '?' dahinter zu schreiben.
BTW: (.+?) kannst du auch als (.*) schreiben.
Gruß,
Johannes