mal wieder reg.Ex. bzw. preg_match
romy
- php
Hi,
mhm, irgendwie fehlt mir immer ein bisschen der Ansatz.
Ich hätte gern den Inhalt eines body-tags
der String könnte so ausehen:
$string = "<hsadgifhasdhf>sdkjfj<body bgcolor="#bla" usw.>kjdsfo<hsdf>";
versucht habe ich es mit:
preg_match('!<body(.*)>!i',$string, $txt);
in $txt[1] steht jetzt aber:
bgcolor="#bla" usw.>kjdsfo<hsdf
anstatt wie gewünscht:
bgcolor="#bla" usw.
warum, wie sage ich preg_match, das der Rest nach dem > abgeschnitten werden kann bzw. nicht zu $txt[1] gehört?
ich habe es noch anders versucht, aber es gab immer das Geliche Ergebnis:
preg_match('!^<body(.*)>$!i',$string, $txt);
preg_match('!^(.*)<body(.*)>$!i',$string, $txt);
preg_match('!^(.*)<body(.*)>(.*)$!i',$string, $txt);
was kann man da tun?
ciao
romy
hUhU romy
was kann man da tun?
schaU mal dort nach
http://www.php.net/manual/en/pcre.pattern.modifiers.php
da wirst dU bestimmt fUendig ;-)
Viele GrUeße
lUlU
Hi,
http://www.php.net/manual/en/pcre.pattern.modifiers.php
da wirst dU bestimmt fUendig ;-)
ja und nein ;)
ich habe endlich einen passenden Modifier für mein Leerzeichen-Problem gefunden, nämlich x... danke echt, ich war schon am verzweifeln
Aber für das beschriebene Problem hilft keiner der Modifier, hab sie zum größten Teil ausprobiert, wenn ich mir nicht sicher war, was sie bewirken und der Effekt bleibt gleich...
Ich finde das nicht logisch, da in php.net steht:
<quote>
If matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.
</quote>
Das heisst für mich, dass das array $matches aus den in Klammern stehenden Suchbegriffen besteht!?
Warum steht dann auch Text, der nicht dazugehört mit drin bzw. wie kann ich dies trennen?
ciao
romy
Huhu romy
Aber für das beschriebene Problem hilft keiner der Modifier, hab sie zum größten Teil ausprobiert, wenn ich mir nicht sicher war, was sie bewirken und der Effekt bleibt gleich...
"U" für Ungreedy sollte es eigentlich tun.
preg_match('!<body(.*)>!iU',$string, $txt);
evtl. musst Du auch noch "s" verwenden, damit "." auch Zeilenumbrüche
mit einschliesst.
Viele Grüße
lulu
Hi,
"U" für Ungreedy sollte es eigentlich tun.
tatsächlich ...
jetzt habe ich den Mund wieder zu voll genommen, von wegen ausprobiert ... ;) Muss ich wohl übersehen haben...
ich danke Dir
einen schönen Tag noch...
ciao
romy