Page 1 of 1

Reguläre Ausdrücke

Posted: 2010-05-21 20:33
by LightTech
Nabend liebes Team,

ich habe ein Prob mit regulären ausdrücken und möchte das eine bestimmte Aktion nur ausgeführt wird, wenn eine URL folgenden Text nicht beinhaltet:
.gif, .jpg, .png oder images.server.com
(ob eins oder mehrere enthalten sind ist egal, Hauptsache meine Aktion wird dann ausgeführt)

Ich habe es nun mit folgendem versucht:

Code: Select all

$HTTP["url"] !~ "((\.jpg)$|(\.gif)$|(\.png)$|(images\.server\.com))" {
  ...action...
}
aber leider ist daran irgendwas falsch, ich weiß nur nicht was.

Könnt ihr mir bitte helfen und mir den Code anpassen?
Diese regulären Ausdrücke wollen einfach nicht in mein Hirn.

Danke schonmal!

Re: Reguläre Ausdrücke

Posted: 2010-05-21 21:49
by LightTech
Fast, nur leider bekomme ich mit deinem Code nur einen parsing regex failed Error. :(

Re: Reguläre Ausdrücke

Posted: 2010-05-21 23:37
by daemotron
^ und $ dürfen als Delimiter nur einmal auftauchen. Ungetestet:

Code: Select all

^.*(\.jpg|\.gif|\.png|images\.server\.com)$
Im übrigen brauchst Du ^ und $ nicht, wenn Du nur das (nicht-)Enthaltensein eines Strings prüfen willst - dann bezieht sich die Prüfung auf die gesamte URL. ^ und $ sind nur nützlich, wenn Du feststellen willst, ob ein bestimmter Ausdruck am Anfang oder Ende der URL vorkommt bzw. ob die gesamte URL einem bestimmten Muster entspricht.

Re: Reguläre Ausdrücke

Posted: 2010-05-22 02:45
by LightTech
Er hat zwar wieder nicht alle Bilder ausgeschlossen, aber so habe ich es zum großen Teil hingekriegt.

Vielen Dank jfreund und auch dir matze!

Re: Reguläre Ausdrücke

Posted: 2010-05-22 10:21
by Joe User

Code: Select all

$HTTP["host"] != "images.server.com" {
  $HTTP["url"] !~ "\.(jpg|gif|png)$" {
    ...action...
  }
}