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

Beitrag lesen

Hallo,

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

ja, jeweils einzeln.

  1. Warum dann nur das letzte nicht?
  2. Wo ist die Logik dahinter?

Der gesuchte Ausdruck wird einmal gefunden (und ggf. ersetzt). Dann ist dieser Teil des Patterns aus dem Suchmuster "verbraucht".

  1. Wie gestalte ich den Ausdruck entsprechend gieriger?

In deinem Sinn: Gar nicht. Einen Teil des Suchmusters mehrmals an verschiedenen Stellen zu finden, widerspricht dem Konzept: Pattern und der durchsuchte String lassen sich immer blockweise einander zuordnen, also jedem Abschnitt des Patterns entspricht auch ein Abschnitt im String (oder kann bei Verwendung der Quantifier ? oder * auch entfallen). Keinesfalls kann ein Abschnitt des Patterns mehreren Abschnitten im String entsprechen.

So long,
 Martin

--
Zwei Politiker auf dem Weg zum Sitzungssaal: "Was sagten Sie in ihrer Rede neulich noch zur Rentenreform?" - "Nichts." - "Ja, schon klar. Aber wie haben Sie es formuliert?"
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(