MySQL understøtter ikke lookarounds, og det understøtter heller ikke \d
eller \w
klasser. Du kan opdele det regex sådan:
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'
Hvor:
REGEXP '^.{3,}$'
- den samlede længde skal være 3 eller flere tegnAND col NOT REGEXP '^[0-9]+$'
- streng kan ikke kun bestå af cifreAND col NOT REGEXP '([^$&%@]*[$&%@]){4}'
- streng kan ikke have 4 specielle tegnAND col NOT REGEXP '[[:alnum:]_]{11}'
- streng kan ikke have et ord med 11 tegn