MySQL ne prend pas en charge les lookarounds, ni ne prend en charge \d
ou \w
Des classes. Vous pouvez diviser la regex comme ceci :
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'
Où :
REGEXP '^.{3,}$'
- la longueur totale doit être de 3 caractères ou plusAND col NOT REGEXP '^[0-9]+$'
- la chaîne ne peut pas être composée uniquement de chiffresAND col NOT REGEXP '([^$&%@]*[$&%@]){4}'
- la chaîne ne peut pas avoir 4 caractères spéciauxAND col NOT REGEXP '[[:alnum:]_]{11}'
- la chaîne ne peut pas avoir un mot avec 11 caractères