phpbar.de logo

Mailinglisten-Archive

[php] Regular Expressions

[php] Regular Expressions

Hartmut Holzgraefe hartmut_(at)_six.de
Fri, 23 Jun 2000 23:25:48 +0200


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