romy: mal wieder reg.Ex. bzw. preg_match

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

--
DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  1. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. 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

      --
      DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
      sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
      Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
      Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
      1. 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

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. 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

          --
          DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
          sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
          Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
          Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode