Mysql
 sql >> Base de données >  >> RDS >> Mysql

convertir l'expression régulière PCRE en expression régulière de requête mysql

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 plus
  • AND col NOT REGEXP '^[0-9]+$' - la chaîne ne peut pas être composée uniquement de chiffres
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - la chaîne ne peut pas avoir 4 caractères spéciaux
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - la chaîne ne peut pas avoir un mot avec 11 caractères