Mailinglisten-Archive |
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