Julius Hacker: preg_match_all Problem

Hallo Forum ;-)

ich hab derzeit ein kleines Problem mit preg_match_all in PHP.
Aber erstmal den entsprechenden Quelltext dazu, dann die Beschreibung des Problems:

<?php
$bearbeitungstemplate = "<html>
<body>
<table>
<tr><td width="130">[%navigation%]</td><td>[%inhalt%]</td></tr>
</table>
</body>
</html>";
preg_match_all("/[%(.+)%]/", $bearbeitungstemplate, $subtemplates);

(HTML Sachen wie head & Co. hab ich der Übersichtlichkeit halber einmal weggelassen)

preg_match_all liefert mir nun [%navigation%]</td><td>[%inhalt%], sollte mir aber eigentlich [%navigation%] und [%inhalt%] liefern.

Hat einer von euch eine Idee, wie ich das am besten anstelle, damit ich das richtige Ergebnis bekomme?

Danke für die Hilfe schonmal im Vorraus :-)

Gruß
Julius

  1. Hallo!

    /[%(.+)%]/

    preg_match_all liefert mir nun [%navigation%]</td><td>[%inhalt%], sollte mir aber eigentlich [%navigation%] und [%inhalt%] liefern.

    Hat einer von euch eine Idee, wie ich das am besten anstelle, damit ich das richtige Ergebnis bekomme?

    Das liegt daran dass Dein Ausdruck "gierig" ist ;-)
    http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm#gierig_genuegsam

    Alternativ könntest Du es auch mit [^%]+ versuchen - solange keine "%" im Text vorkommen.

    Grüße
    Andreas

    1. Hallo Andreas,

      Das liegt daran dass Dein Ausdruck "gierig" ist ;-)
      http://selfhtml.teamone.de/cgiperl/sprache/regexpr.htm#gierig_genuegsam

      Mit einem Fragezeichen hinten dran, wie in dem SelfHTML Dokument beschrieben, funktioniert das ganze nun :-)
      Dank dir!

      Gruß
      Julius