Reguläre Ausdrücke

Metha

Mitglied
Hallo zusammen

Ich habe folgendes Problem. Ich möchte einen String auf das Vorkommen "seite=x" durchsuchen. Wobei x hier für eine variable Zahl steht.

Hier mein Ansatz:
PHP:
//$this->url ist z.B. index.php?main=neu&seite=5&sub=xyz
//$weiter ist eine variable Zahl. Also z.B. 15

$suchmuster='/.seite= [0-9]./i';
$ersetzen='seite='.$weiter;
$linkweiter=preg_replace($suchmuster, $ersetzen, $this->url);

Kann mir da jemand weiterhelfen? Ein kleine Erläuterung wäre nett, damit ich mit den Regulären Ausdrücken sicherer werde.

Danke und Gruß Micha
 
Wunderbar, es funktioniert.

Kannst du mir den regulären Ausdruck noch etwas erläutern.
Den mittleren Teil hatte ich ja genau so :-)

Danke im Voraus.
 
Ich versuch’s mal:
/(?<=[?&])seite=[0-9]+(?=&|$)/i

Der rote und der blaue Teil wird dir bekannt sein.
Der grüne Teil ist eine so genannte Lookbehind-Assertion. Dabei ist passt der gesamte Ausdruck nur, wenn vor dem Fundort ein Fragezeichen oder ein &-Zeichen steht. Dieses Zeichen wird jedoch nicht zu dem Gefundenen zugerechnet.
Der orange Teil ist ähnlich, nur dass es eine Lookahead-Assertion ist und entweder das &-Zeichen oder das Ende der Zeichenkette erwartet wird.
Regenechsen.de haben dazu noch einige weiterführende Informationen.
 
Zurück