sql >> Databasteknik >  >> RDS >> Mysql

konvertera PCRE reguljärt uttryck till mysql query reguljärt uttryck

MySQL stöder inte lookarounds och inte heller \d eller \w klasser. Du kan dela upp det regex så här:

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

Var:

  • REGEXP '^.{3,}$' - den totala längden bör vara 3 eller fler tecken
  • AND col NOT REGEXP '^[0-9]+$' - sträng kan inte bestå av endast siffror
  • AND col NOT REGEXP '([^$&%@]*[$&%@]){4}' - sträng kan inte ha fyra specialtecken
  • AND col NOT REGEXP '[[:alnum:]_]{11}' - sträng kan inte ha ett ord med 11 tecken


  1. sql self-join table ta bort dubbletter av rader

  2. Unionsfråga med flera val efter java 8

  3. Är mysql_real_escape_string() trasig?

  4. Varför MySQL helt omformatera VIEW-frågetexten?