MySQL ondersteunt geen lookarounds, noch ondersteunt het \d
of \w
klassen. Je kunt de regex zo splitsen:
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'
Waar:
REGEXP '^.{3,}$'
- de totale lengte moet 3 of meer tekens zijnAND col NOT REGEXP '^[0-9]+$'
- tekenreeks mag niet alleen uit cijfers bestaanAND col NOT REGEXP '([^$&%@]*[$&%@]){4}'
- string mag geen 4 speciale tekens hebbenAND col NOT REGEXP '[[:alnum:]_]{11}'
- string kan geen woord hebben met 11 tekens