AndreD: Hilfe zu regulären Ausdrücken

Beitrag lesen

Hallo zusammen,

also reguläre Ausdrücke sind nicht meine Welt... Ich möchte mittels preg_replace einen Teil einer URL tauschen, unabhängig was vor oder nach dem zu tauschenden Teil steht. Einschränken möchte ich es wie folgt in einem Testbeispiel:

<?php

$lang = "de";
$cat = "12";
$id = "123";

$url = "index.php?lang=" . $lang . "&cat=" . $cat . "&id=" . $id;

echo( "<p><b>Alte URL:</b> " . $url . "</p>" );

$lang = "en";

$url = preg_replace( "/^?lang=[a-z]{2}&?$/", $lang, $url)

echo( "<p><b>Neue URL:</b> " . $url . "</p>" );

?>

Also jeder String zwischen ?lang= und optional & der zwei beliebige Kleinbuchstaben enthält soll gegen $lang getauscht werden, leider tut sich nix.

Kann mir bitte jemand der sich ein wenig mit reg. Exp. auskennt auf die Sprünge helfen? Geht das überhaupt so oder brauch ich da ein komplexeres Pattern?

Vielen Dank & Gruss
AndreD