Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Konvertieren Sie den regulären PCRE-Ausdruck in einen regulären MySQL-Abfrageausdruck

MySQL unterstützt weder Lookarounds noch unterstützt es \d oder \w Klassen. Sie können den Regex so aufteilen:

SELECT * FROM table WHERE col REGEXP '^.{3,}$' AND col NOT REGEXP '^[0-9]+$' AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' AND col NOT REGEXP '[[:<:]][[:alnum:]_]{11}'

Wo:

  • REGEXP '^.{3,}$' - Die Gesamtlänge sollte 3 oder mehr Zeichen betragen
  • AND col NOT REGEXP '^[0-9]+$' - Zeichenfolge darf nicht nur aus Ziffern bestehen
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - Zeichenfolge darf nicht 4 Sonderzeichen enthalten
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - Zeichenfolge darf kein Wort mit 11 Zeichen enthalten