Mysql
 sql >> Database >  >> RDS >> Mysql

convertire l'espressione regolare PCRE in un'espressione regolare di query mysql

MySQL non supporta i lookaround, né supporta \d o \w classi. Puoi dividere la regex in questo modo:

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

Dove:

  • REGEXP '^.{3,}$' - la lunghezza totale deve essere di 3 o più caratteri
  • AND col NOT REGEXP '^[0-9]+$' - la stringa non può essere composta solo da cifre
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - la stringa non può avere 4 caratteri speciali
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - la stringa non può contenere una parola con 11 caratteri