Seite 1 von 1
Reguläre Ausdrücke
Verfasst: 26.04.2006, 18:28
von zeebee
Kann mir einer vielleicht bei der Lösung eines Problems helfen? Ich benutze für eine Skripte reguläre Ausdrücke um sie auf Korrektheit zu prüfen (z.B. für eine richtige Formatierung eines Datums). Jetzt frage ich micht, ob ich komplette Wörter in einem beliebigen String verbieten kann.
Beispiel:
$string1 = "Du plöder Idiot!";
$string2 = "Du netter Mensch!!";
Der reguläre Ausdruck sollte false bei $string1 also false zurückgeben und bei $string2 true. Aber nur bei "plöder Idiot" alles andere soll erlaubt sein. Geht das mit regulären Ausdrücken? Mit PHP kann man es ja leicht abfangen, aber dafür müsste ich einiges umprogrammieren und diese Arbeit will ich mir eigentlich sparen...

Verfasst: 26.04.2006, 19:12
von Certain
Klar geht das, Dein regulärer Ausdruck besteht dann einfach aus "plöder Idiot". Für String 1 wäre das Ergebnis dann zwar "true" (und für String 2 "false"), aber das kannst Du dann ja einfach negieren. Wobei ich mir gerade nicht sicher bin, ob der Umlaut Probleme machen könnte.
Verfasst: 26.04.2006, 21:16
von zeebee
Das mit dem negieren bekomme ich nicht hin. Da muss ja ein ^ davor, aber der ausdruck reagiert trotzdem so als wäre kein ^ davor....
Verfasst: 26.04.2006, 21:32
von KhrisMUC
Ohne den gerinsten Plan von PHP würd ich mal vermuten, dass das ^ an der falschen Stelle ist. Es muss nicht in den String, sondern unmittelbar vor die Bedingung.
Pseudocode:
Verfasst: 26.04.2006, 21:37
von zeebee
khrismuc hat geschrieben:Ohne den gerinsten Plan von PHP würd ich mal vermuten, dass das ^ an der falschen Stelle ist. Es muss nicht in den String, sondern unmittelbar vor die Bedingung.
Pseudocode:
nein, wenn schon wäre es ein
aber wie gesagt steht das skript fest und ich will das mithilfe des regulären ausdrucks (und dieser reguläre ausdruck ist die eigentliche bedingung) abfangen.
Verfasst: 26.04.2006, 22:02
von DasJan
khrismuc hat geschrieben:Pseudocode:
Code: Alles auswählen
if (^Bedingung) ...[/quote]
In regulären Ausdrücken bedeutet ^ was anderes, als in C. Habe gerade beim Überfliegen der RegExp-Doku nichts gefunden. (Text) matcht offenbar Text, aber irgendwie scheinen reguläre Ausdrücke kein "nicht" zu kennen...
Das Jan
Verfasst: 26.04.2006, 22:06
von BLiM
Zeebee, schau mal
hier oder
hier.
Verfasst: 27.04.2006, 01:56
von Certain
zeebee hat geschrieben:aber wie gesagt steht das skript fest und ich will das mithilfe des regulären ausdrucks (und dieser reguläre ausdruck ist die eigentliche bedingung) abfangen.
Das wird meines Wissens nicht klappen. Es ist (außer wahrscheinlich in Pearl) oftmals nicht möglich, einen regulären Ausdruck zu negieren, ohne auf die Negation der "Host-Sprache" zurückzugreifen.
Verfasst: 27.04.2006, 09:00
von zeebee
Certain hat geschrieben:zeebee hat geschrieben:aber wie gesagt steht das skript fest und ich will das mithilfe des regulären ausdrucks (und dieser reguläre ausdruck ist die eigentliche bedingung) abfangen.
Das wird meines Wissens nicht klappen. Es ist (außer wahrscheinlich in Pearl) oftmals nicht möglich, einen regulären Ausdruck zu negieren, ohne auf die Negation der "Host-Sprache" zurückzugreifen.
okay, dann komme ich wohl drum herum... vielen dank!