sql >> Databáze >  >> RDS >> Mysql

převést regulární výraz PCRE na regulární výraz dotazu mysql

MySQL nepodporuje lookarounds ani nepodporuje \d nebo \w třídy. Regulární výraz můžete rozdělit takto:

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

Kde:

  • REGEXP '^.{3,}$' - celková délka by měla být 3 nebo více znaků
  • AND col NOT REGEXP '^[0-9]+$' - řetězec nemůže obsahovat pouze číslice
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - řetězec nemůže mít 4 speciální znaky
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - řetězec nemůže obsahovat slovo s 11 znaky


  1. Postgresql a Oracle:aktualizujte více tabulek ze společného poddotazu

  2. AES_ENCRYPT a AES_DECRYPT pomocí jazyka Java

  3. NodeJS MySQL - Jak zjistit, zda je připojení uvolněno nebo ne

  4. MySql pomocí správné syntaxe pro klauzuli over