phpbar.de logo

Mailinglisten-Archive

[php] Regular Expressions

[php] Regular Expressions

Markus Dobel markus_(at)_wollte-ja-eigentlich-was-kuerzeres-denn.wer-will-schon-so-eine-lange-adresse-tippen.de
Mon, 26 Jun 2000 20:53:13 +0200


Andreas Zaugg - CAB Services AG wrote:
> 
> z.B. eregi("<#(.*)#>",$string);
> 
> Schön wäre es jetzt wenn ich in der gleichen Zeile nochmals
> einen tag finden würde und dies in einem array abspeichern
> könnte:
> 
> "bla bla bla <# tag1 #> bla bla <# tag2 #> bla"
>              ^^^^^^^^^^         ^^^^^^^^^^
                 ^^^^^^^^^^^^^^^^^^^^^^^^^

Die ereg-Funktionen wuerden das markierte komplett matchen, da sie immer
greedy sind. (Erfind doch mal bitte wer deutsches Vokabular dafuer ;) Du
haettest also den String " tag1 #> bla bla <# tag2 " als Match.
Was du suchst, sind die preg-Funktionen, insbesondere preg_match_all().

z.B. 
if (preg_match_all("/<#(.*)#>/", $string, $results, PREG_PATTERN_ORDER))
{
  $tags=$results[1];
  while(list(,$cur_tag)=each($tags)) {
    print($cur_tag."\n");
  }
}

Habs nicht getestet, sollte aber so funzen.
Den Rest findest du auf
http://www.php.net/manual/function.preg-match-all.php

Gruss, Markus


php::bar PHP Wiki   -   Listenarchive