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.