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

Comment définir une expression régulière avec plusieurs opérateurs OU où chaque terme comprend un préfixe et un suffixe d'espace ?

Essayez ceci :

(?: (?:and or|and|a o|company|co|c o|dba|d b a))+(?!\S)/i

Comme @mathematical.coffee, j'ai commencé par factoriser l'espace de début et de remplacer l'espace de fin par une anticipation - dans ce cas, un négatif anticiper pour un non-espace blanc personnage. De cette façon, cela fonctionnera même si le jeton est le dernier de la chaîne et non suivi d'un espace. Mais le changement le plus important consiste à remplacer deux matchs ou plus à la fois chaque fois que possible.