Mailinglisten-Archive |
Andreas Korinek wrote: > > Am Fri, 23 Jun 2000 schrieben Sie: > > > > > deshalb brauchst du eigentlich eher "^http://([^/\.]*\.)*saxen.net/.*" > Kein Wunder, daß ich Regexps meide und auch nicht verstehe, der obige Ausdruck > schaut eher wie das Testen aller möglichen Sonderzeichen aus. eigentlich ist es doch ganz einfach: am Anfang ^ steht http:// danach folgen beliebig viele (auch 0) Host/Domainteile ([^/\.]+\.)* die Klammern bilden eine Gruppe bzw. einen Unterausdruck der Stern am Ende besagt, das diese beliebig oft oder auch gar nicht vorkommen darf in der Gruppe dürfen zunächst beliebig oft die innerhalb der eckigen Klammer beschriebenen Zeichen vorkommen (mindestens jedoch eins, das hab ich vorhin in der eile übersehen, macht aber nichts, da REFERER nur legale Namen enthalten sollte) das 'Dach' am Anfang in den eckigen Klammern besagt, das _alle_ Zeichen _außer_ den folgenden gemeint sind nämlich alle außer '/' und '.' (etwas naiv, aber s.o.) und am Schluß jedes Namensteils steht dann ein Punkt (der Punkt hat eine besondere Bedeutung, deshalb das Quoting durch '\') und dann kommt am Ende des Host/Domainnamens der gesuchte Begriff (und schon wieder ein Fehler, Punkt nicht gequoted) saxen\.net/ und schließlich noch der Rest der URL, den kann man aber .* hier auch weglassen, den für uns interessanten Teil hatten wir ja schon macht dann zusammen "^http://([^/\.]+\.)*saxen\.net/" das ist wie in der Mathematik, den nicht Eingeweihten erschlägt zunächst die Symbolflut und er fragt sich "können die sich nicht verständlich ausdrücken wie normale Leute auch?", aber wenn man einmal die Nomenklatur im Griff hat kann man sich gar nicht mehr vorstellen, wie 'normale' Leute mit ihren mehrdeutigen, weitschweifigen Umschreibungen der Sachverhalte überhaupt klarkommen können ... will sagen: Wer lesen kann, ist klar im Vorteil. Auch in 'Fremdsprachen'!
php::bar PHP Wiki - Listenarchive