Hi,
habe ein dummes Problem: Ich habe mir einen regulären Ausdruck gebastelt, der mit Assertions arbeitet.
Also nach PHP Manual z.B. foo(?!bar) findet alle Strings "foo", die nicht von "bar" gefolgt werden.
So. Nur, diese sog. Assertions funktionieren nur mit PCRE-Funktionen (Perl Compatible Reg Exp).
POSIX erweiterte Syntay wie sie meine MySQL-Datenbank oder auch die ereg-Funktion verwendet, kennen KEINE Assertions :-(.
Frage nun: Gibts irgendeine Möglichkeit, um meiner Datenbank Assertions bei zu bringen. Das Pattern kann ich nicht ohne formulieren und muss eine Datenbank-Abfrage mit diesem Pattern machen.
Die DB interpretiert das "?" der Assertions immer als Repeat-Operand (0 oder 1 mal).
Gibts da Abhilfe?
Das Pattern sieht etwa so aus:
/[1]*([abcde])(?!\1)[abcde]+$/
-> Buchstabenfolge aus a,b,c,d oder e. Beliebig oft. Früher oder später muss dann ein Buchstabe kommen, der nicht von sich selbst gefolgt wird. Dann wieder Buchstaben.
Klappt auch. Ich will damit Strings finden, die mindestens zwei verschiedene Buchstaben enthalten.
Gruß
Christian
abcde ↩︎