RegExp Problem

DataFox

Erfahrenes Mitglied
Hi

Ich habe so einen String:

Code:
<frame src="doc.html" name="topFrame" frameborder="0" marginheight="0" marginwidth="0" noresize="true" scrolling="no">

Aus diesem String möchte ich nun auslesen, was im src-Attribut steht, also in diesem Fall müsste "doc.html" zurück kommen.

Meine RegExp will aber nicht...

Code:
<frame .*?name="(.*)".*?>

Ist hier jemand der sich mit RegExp gut auskennt? Benutze schon den RegexCoach, aber kriegs net hin.

Gruß
Laura
 
welche funktion nutzt du?
preg_match, preg_match_all ?

Der Regex scheint aber auch noch nicht 100%ig zu sein...

/[frame].*[src]\=\"(.*)\"/is

oder irgendwie so....
Ich habs noch nicht getestet....
 
preg_match_all

...werde mir mal ein gutes RegExp tut durchlesen. Kennt jemand ein gutes?

Gruß
Laura
 
Moin!

Code:
if(preg_match('<frame.*?src\=\"(.*?)\"', $tring, &$array_ergebniss))
{
}
Dürfte ganz gut funktionieren. Das Fragezeichen sorgt dafür, dass Du auch wirklich nur den String innerhalb der Quotes bekommst. Du kannst natürlich auch preg_match_all verwenden.

Probleme gibt's erst dann, wenn mal ein <frame> ohne src-Attribut auftaucht - was aber auch wenig Sinn macht.

Buchtippp: "Reguläre Ausdrücke - Kurz Und Gut", O'REILLY - Verlag.
Linktipp: http://de.selfhtml.org/perl/sprache/regexpr.htm

Gruß
Enum
 
Hi!

Ich habe nun diese geniale RegEx:

Code:
<frame [^>]*(src|name)=["|']([0-9a-zA-Z_\-\.]*)["|'][^>]*>

Im matchArray[0] habe ich die gesamte Zeile (greedy). Darin ist ein weiteres Array, im ersten Element wird der Inhalt des Name-Attributes gematcht.

Aber: Ich möchte auch auf den Inhat des src-Attributs zugreifen können. Funktioniert so scheinbar nicht... Obwohl dort ein "src oder name" steht... hat jemand eine Idee was da faul ist?

Gruß
Laura
 
Zurück