McMaiers Geschrieben 31. März 2006 Geschrieben 31. März 2006 Hi Leute ... oh man die RegExp machen mir immer Kopfzerberchen! ich hab nen Text und in dem ist ein alt="" attribut im img tag! Wie würde denn der RegExp heissen um das Alt="" Attribut rauszufiltern? Bsp: <img src="1.jpg" ALT="das ist bild 1" width="" height=""> Raus kommen müsste dann: das ist bild 1 ich dachte sowas in der richtung: //.*ALT=\"*\":*/ aber das überhaput ned hin Kann mir da jemand bitte Geistige unterstützung geben Danke mcmaiers Zitieren
DevilDawn Geschrieben 31. März 2006 Geschrieben 31. März 2006 Wie wärs mit <.*alt="([^"]*)".*> ? In Worten etwa 'Finde etwas zwischen < und > das mit alt=" anfängt und bis zum nächsten " geht.' Erfordert natürlich zwingend die doublequotes für den alt-Tag. preg_replace-example: <? $new = preg_replace('/.*<.*alt="([^"]*)".*>.*/i','$1',$old); ?> [/php] Zitieren
Markus.K Geschrieben 3. April 2006 Geschrieben 3. April 2006 Wie wärs mit <.*alt="([^"]*)".*> ?Oder einfacher: <.*alt="(.+?)".*> hier mit minimalem Matching, also gesucht wird der kleinste Text zwischen zwei " vor dem alt=. Ich habt das .+? gewohnheitsmäßig inKlammern gesetzt, hat in Perl in unserem Fall den nützlichen Effekt, dass man den Wert des Alt-Attributs gleich in $1 abgreifen kann; wie das in PHP gemacht wird, muss ich jedesmal das Manual konsultieren. Frage am Rande: Ich hab mir ja angewöhnt, die " immer zu escapen. Macht das noch einer? Ich finde, im von mir benutzten Editor (UltraEdit) sieht das einfach hübscher aus. Zitieren
DevilDawn Geschrieben 3. April 2006 Geschrieben 3. April 2006 Frage am Rande: Ich hab mir ja angewöhnt, die " immer zu escapen. Macht das noch einer? Ich finde, im von mir benutzten Editor (UltraEdit) sieht das einfach hübscher aus. Ungern, da ich auch oft genug Perl/PHP/$SCRIPT auf remote Servern via ssh/vi anfassen muß. Daher meist Singlequotes außen und Doublequotes innen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.