Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL REGEXP und wiederholte Wörter

Normalerweise würde man positive Lookahead-Assertionen verwenden für diese Aufgabe, aber die Regex-Engine von MySQL unterstützt sie nicht.

Daher besteht Ihre einzige Option (wenn Sie dies in einer einzigen Regex tun möchten) darin, beide Varianten zu behandeln (hello nach red oder hello vor red ) "manuell":

hello.*red|red.*hello

Für zwei "Suchwörter" ist das wahrscheinlich akzeptabel - es lässt sich aber nicht gut skalieren.

Ihr regulärer Ausdruck ((hello|red).*){2}()* ist etwas seltsam; es bedeutet

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

das passt also zu hello foo hello oder red bar red auch.