これを試してください:
(?: (?:and or|and|a o|company|co|c o|dba|d b a))+(?!\S)/i
@mathematical.coffee のように、先頭のスペースを除外し、末尾のスペースを先読みに置き換えることから始めました。この場合、負 非空白の先読み キャラクター。この方法では、トークンが文字列の最後のトークンであり、その後にスペースが続かない場合でも機能します。しかし、最も重要な変更は、可能な限り一度に 2 つ以上のマッチを置き換えることです。