Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL REGEXP et mots répétés

Habituellement, on utiliserait des des assertions d'anticipation positives pour cette tâche, mais le moteur regex de MySQL ne les prend pas en charge.

Par conséquent, votre seule option (si vous souhaitez le faire dans une seule expression régulière) est de gérer les deux variantes (hello après red ou hello avant red ) "manuellement":

hello.*red|red.*hello

Pour deux "mots de recherche", c'est probablement acceptable - cela ne s'adapte pas bien, cependant.

Votre regex ((hello|red).*){2}()* est un peu étrange; ça veut dire

(            # 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...

donc cela correspond à hello foo hello ou red bar red aussi.