vim substitute furcsán viselkedik(?)

Fórumok

Ilyen sorok vannak egy fájlban:

42.67 24.25 18.12 0 8 5283

A g/\([0-9]\) \([0-9]\)/s//\1;\2/g parancs eredménye minden sorban:
42.67;24.25;18.12;0 8;5283

A 0 és a 8 közti szóközt miért hagyja ki?
Ha újrafuttatom a parancsot, akkor azt is kicseréli.

Gyanítom, hogy a regexp "mohósága" állhat a háttérben, de ezt már nem tudom követni.

Hozzászólások

42.67 24.25 18.12 0 8 5283

Végig a soron, minden találaton, de mindegyiken csak egyszer:

7 2 = 7;2
5 1 = 5;1
2 0 = 2;0
(itt várnád, hogy "0 8" = "0;8", de a 0 már szerepelt egy találatban, ebben a körben többször nem dobhat, ezért a "0 8" marad)
8 5 = 8;5

SZERK, hogy (talán) érthetőbb legyen: a következő illeszkedés keresése az előző illeszkedés utolsó karaktere után történik. A 0 nem a 0 után van, hanem rajta.

Halványan sejtem/felfogom amit írsz, illetve a gyakorlatban kipróbálva megvan:

a a a a a a

g/a a/s//a-a/g

a-a a-a a-a

Köszi.
Már csak az marad, hogy ezt meg lehet-e kerülni valahogy, hogy minden olyan szóközt cseréljen, ami két megadott karakterminta között van?
Na mindegy, így már talán megtalálom a doksiban, ha van rá megoldás.