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

MySQL REGEXP a opakovaná slova

Obvykle se používá pozitivní dopředná tvrzení pro tento úkol, ale regex engine MySQL je nepodporuje.

Vaší jedinou možností (pokud to chcete udělat v jediném regulárním výrazu) je tedy zpracovat obě varianty (hello po red nebo hello před red ) "ručně":

hello.*red|red.*hello

Pro dvě „hledaná slova“ je to pravděpodobně přijatelné – neškáluje to však pěkně.

Váš regulární výraz ((hello|red).*){2}()* je trochu zvláštní; to znamená

(            # Start of group:
 (hello|red) # Match either hello or red
 .*          # Match any number of characters
){2}         # Match this group twice
()*          # Match the empty string any number of times...

takže toto odpovídá hello foo hello nebo red bar red také.



  1. T-SQL získá počet pracovních dnů mezi 2 daty

  2. Vložení pole do sloupce databáze mysql

  3. Optimalizujte dotaz MySQL, abyste se vyhnuli použití kde; Použití dočasné; Pomocí řazení souborů

  4. Jaké jsou slabiny této metody ověřování uživatelů?