Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

converter expressão regular PCRE para expressão regular de consulta mysql


O MySQL não suporta lookarounds, nem suporta \d ou \w Aulas. Você pode dividir o regex assim:
SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'

Onde:
  • REGEXP '^.{3,}$' - o comprimento total deve ser de 3 ou mais caracteres
  • AND col NOT REGEXP '^[0-9]+$' - a string não pode consistir apenas em dígitos
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - string não pode ter 4 caracteres especiais
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - string não pode ter uma palavra com 11 caracteres