Henryk Plötz: Hilfe zu regulären Ausdrücken

Beitrag lesen

Moin,

preg_replace("/(?lang=)[a-z]{2}(&?)/", "\1".$lang."\2",$url)
welche vor-/nachteile sind hier gegenueber
preg_replace("/(?<=?lang=)[a-z]{2}(?=&?)/", $lang, $url);
zu verzeichnen? oder machen die beiden gar nicht wirklich das gleiche?

Welchen Teil von

Damit würdest du nämlich "?lang=foo" durch "en" ersetzen.

habe ich undeutlich getippt? (Zugegebenermaßen habe ich nicht darauf geachtet, dass der regexp nur zweibuchstabige lang-Werte im $url akzeptiert. Er würde also 'nur' "?lang=fo" ersetzen und das letzte "o" lassen.)

Ein Beispiel zur Klarheit:
preg_replace("/(?lang=)[a-z]{2}(&?)/", "\1".$lang."\2", $url)
$url vorher: foobar.htm?lang=ab
$url nachher: foobar.htm?lang=en

preg_replace("/(?lang=)[a-z]{2}(&?)/", $lang, $url)
$url vorher: foobar.htm?lang=ab
$url nachher: foobar.htmen

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~