Stefano: Regulärer Ausdruck macht nicht ganz, was er soll

Beitrag lesen

$test="text&site=234&text2=www&site=567&site=54332&text";

$test = preg_replace("!&site=(.*?)&!","&",$test);

Weil das &site=567& findet und dann site=54332& nicht mehr macht - vermute ich.

Na, dann aber 3 Fragen hierzu:

Die Regex hat ja sowohl &site=234& gefunden und ersetzt, als auch &site=567&.

  1. Warum dann nur das letzte nicht?
  2. Wo ist die Logik dahinter?
  3. Wie gestalte ich den Ausdruck entsprechend gieriger?

Grüße, Stefan