phpbar.de logo

Mailinglisten-Archive

[php] Mustersuche in String/Array

[php] Mustersuche in String/Array

Ulf Wendel ulf_(at)_redsys.de
Fri, 28 Apr 2000 09:56:07 +0200


Stephan Noller wrote:
> im String "Forma-Formb-Forma-Formb-Forma"
> soll dann
> das Muster "Forma-Formb-Forma"
> zweimal gefunden werden, preg_match_all
> findet es aber nur einmal.
> 
> Hast Du ne Idee Ulf??

Rekursion greift bei der Aufgabenstellung nicht, aber der zweite
"Trick", zermatchen:

$text = "a1x-b2xxx-a3xxx-b4xxx-a5xxx-b6xxx-a7xxx";
while (preg_match("/(a[0-9x]*)\-([^a]{1}[0-9x]*)\-(a[0-9x]*)/", $text,
$regs)) {
  printf("Ausgangstext: '%s'<br>
          Muster %d [Zeichen %d - %d] = '%s-%s-%s'<br>",
           $text,
           ++$i,
           strpos($text, $regs[1]),
           strpos($text, $regs[3]) + strlen($regs[3]),
          $regs[1],
          $regs[2],
          $regs[3]
       );
  $text = substr($text, strpos($text, $regs[1])+strlen($regs[1]));
  printf("Rest: '%s'<hr>", $text);
}

Ulf


php::bar PHP Wiki   -   Listenarchive