Versuchen Sie Folgendes:
(?: (?:and or|and|a o|company|co|c o|dba|d b a))+(?!\S)/i
Wie bei @mathematical.coffee habe ich damit begonnen, das führende Leerzeichen auszuklammern und das nachfolgende Leerzeichen durch ein Lookahead zu ersetzen – in diesem Fall ein Negativ Lookahead für ein Nicht-Leerzeichen Charakter. Auf diese Weise funktioniert es auch dann, wenn das Token das letzte in der Zeichenfolge ist und kein Leerzeichen folgt. Aber die wichtigste Änderung besteht darin, zwei oder mehr Spiele gleichzeitig zu ersetzen, wann immer dies möglich ist.