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