phpbar.de logo

Mailinglisten-Archive

[php] RegExp Frage

[php] RegExp Frage

Johannes Schlueter schlueter at phpbar.de
Mit Mar 24 19:13:32 CET 2004


On Wednesday 24 March 2004 18:47, Christian Ruetgers wrote:
> >(&|&)muss nur vorkommen, wenn lang= folgt, also irgendwie so:
> >'/\/index.php4\?show_nav=(.*)((&|&)lang=)?(.*)/s'
>
> Das sind so die Ansätze, die ich auch verfolgt hatte. Dann wird  aber das
> lang=sonstas nicht aufgelöst.
>
> Resultat bei '/index.php4?show_nav=test-3-fr&lang=fr' ist dann:
> instring1:Array
> (
>      [0] => /index.php4?show_nav=test-3-fr&lang=fr
>      [1] => test-3-fr&lang=fr
> )

Dann evtl. noch (.*) durch ([^&.]*) - also alles außer & - ersetzen oder an 
der Greediness rumspielen (also mit Modifier U oder einem ? hinter dem *).

Varianten:
'/\/index.php4\?show_nav=(.*)((&|&)lang=)?(.*)/sU'
'/\/index.php4\?show_nav=(.*?)((&|&)lang=)?(.*)/s'

Momentan versucht er den ersten Bereich so groß wie möglich zu machen, soll 
aber sobald die nächste Abteilung matcht aufhören... 
Ansonsten hatte ich Dir ja in der ersten Mail noch eine RegExp'lose Lösung 
mitgeschickt - und der ganze Ausdruck geht sicher auch schöner - so wird es 
langsam unlesbar ;-)

johannes

php::bar PHP Wiki   -   Listenarchive